diff --git a/.gitignore b/.gitignore index 847a30db..f727666e 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ __pycache__/ # macOS .DS_Store +nohup.out diff --git a/private_gpt/ui/avatar-bot.ico b/private_gpt/ui/avatar-bot.ico index ab220adb..04cb7225 100644 Binary files a/private_gpt/ui/avatar-bot.ico and b/private_gpt/ui/avatar-bot.ico differ diff --git a/private_gpt/ui/avatar-bot.svg b/private_gpt/ui/avatar-bot.svg new file mode 100644 index 00000000..2d810c57 --- /dev/null +++ b/private_gpt/ui/avatar-bot.svg @@ -0,0 +1,40 @@ + + + diff --git a/private_gpt/ui/images copy.py b/private_gpt/ui/images copy.py new file mode 100644 index 00000000..6705b57e --- /dev/null +++ b/private_gpt/ui/images copy.py @@ -0,0 +1 @@ +logo_svg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODYxIiBoZWlnaHQ9Ijk4IiB2aWV3Qm94PSIwIDAgODYxIDk4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNDguMTM0NSAwLjE1NzkxMUMzNi44Mjk5IDEuMDM2NTQgMjYuMTIwNSA1LjU1MzI4IDE3LjYyNTYgMTMuMDI1QzkuMTMwNDYgMjAuNDk2NyAzLjMxMTcgMzAuNTE2OSAxLjA0OTUyIDQxLjU3MDVDLTEuMjEyNzMgNTIuNjIzOCAwLjIwNDQxOSA2NC4xMDk0IDUuMDg2MiA3NC4yOTA1QzkuOTY4NjggODQuNDcxNiAxOC4wNTAzIDkyLjc5NDMgMjguMTA5OCA5OEwzMy43MDI2IDgyLjU5MDdMMzUuNDU0MiA3Ny43NjU2QzI5LjgzODcgNzQuMTY5MiAyNS41NDQ0IDY4Ljg2MDcgMjMuMjE0IDYyLjYzNDRDMjAuODgyMiA1Ni40MDg2IDIwLjYzOSA0OS41OTkxIDIyLjUyMDQgNDMuMjI0M0MyNC40MDI5IDM2Ljg0OTUgMjguMzA5NiAzMS4yNTI1IDMzLjY1NjEgMjcuMjcwNkMzOS4wMDIgMjMuMjg4MyA0NS41MDAzIDIxLjEzNSA1Mi4xNzg5IDIxLjEzM0M1OC44NTczIDIxLjEzMDMgNjUuMzU3MSAyMy4yNzgzIDcwLjcwNjUgMjcuMjU1OEM3Ni4wNTU0IDMxLjIzNCA3OS45NjY0IDM2LjgyNzcgODEuODU0MyA0My4yMDA2QzgzLjc0MjkgNDkuNTczNiA4My41MDYyIDU2LjM4MzYgODEuMTgwMSA2Mi42MTE3Qzc4Ljg1NDUgNjguODM5NiA3NC41NjUgNzQuMTUxNCA2OC45NTI5IDc3Ljc1MjhMNzAuNzA3NCA4Mi41OTA3TDc2LjMwMDIgOTcuOTk3MUM4Ni45Nzg4IDkyLjQ3MDUgOTUuNDA4OCA4My40NDE5IDEwMC4xNjMgNzIuNDQwNEMxMDQuOTE3IDYxLjQzOTQgMTA1LjcwNCA0OS4xNDE3IDEwMi4zODkgMzcuNjNDOTkuMDc0NiAyNi4xMTc5IDkxLjg2MjcgMTYuMDk5MyA4MS45NzQzIDkuMjcwNzlDNzIuMDg2MSAyLjQ0MTkxIDYwLjEyOTEgLTAuNzc3MDg2IDQ4LjEyODYgMC4xNTg5MzRMNDguMTM0NSAwLjE1NzkxMVoiIGZpbGw9IiMxRjFGMjkiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzVfMTkpIj4KPHBhdGggZD0iTTIyMC43NzIgMTIuNzUyNEgyNTIuNjM5QzI2Ny4yNjMgMTIuNzUyNCAyNzcuNzM5IDIxLjk2NzUgMjc3LjczOSAzNS40MDUyQzI3Ny43MzkgNDYuNzg3IDI2OS44ODEgNTUuMzUwOCAyNTguMzE0IDU3LjQxMDdMMjc4LjgzIDg1LjM3OTRIMjYxLjM3TDI0Mi4wNTQgNTcuOTUzM0gyMzUuNTA2Vjg1LjM3OTRIMjIwLjc3NEwyMjAuNzcyIDEyLjc1MjRaTTIzNS41MDQgMjYuMzAyOFY0NC40MDdIMjUyLjYzMkMyNTguOTYyIDQ0LjQwNyAyNjIuOTk5IDQwLjgyOTggMjYyLjk5OSAzNS40MTAyQzI2Mi45OTkgMjkuODgwOSAyNTguOTYyIDI2LjMwMjggMjUyLjYzMiAyNi4zMDI4SDIzNS41MDRaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik0yOTUuMTc2IDg1LjM4NDRWMTIuNzUyNEgzMDkuOTA5Vjg1LjM4NDRIMjk1LjE3NloiIGZpbGw9IiMxRjFGMjkiLz4KPHBhdGggZD0iTTM2My43OTUgNjUuNzYzTDM4NS42MiAxMi43NTI0SDQwMS40NDRMMzcxLjIxNSA4NS4zODQ0SDM1Ni40ODNMMzI2LjI1NCAxMi43NTI0SDM0Mi4wNzhMMzYzLjc5NSA2NS43NjNaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik00NDguMzI3IDcyLjA1MDRINDE1LjY5OEw0MTAuMjQxIDg1LjM4NDRIMzk0LjQxOEw0MjQuNjQ3IDEyLjc1MjRINDM5LjM3OUw0NjkuNjA4IDg1LjM4NDRINDUzLjc4M0w0NDguMzI3IDcyLjA1MDRaTTQ0Mi43NjEgNTguNUw0MzIuMDY2IDMyLjM3NDhMNDIxLjI2MiA1OC41SDQ0Mi43NjFaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik00NjUuMjIxIDEyLjc1MjRINTMwLjU5MlYyNi4zMDI4SDUwNS4yNzVWODUuMzg0NEg0OTAuNTM5VjI2LjMwMjhINDY1LjIyMVYxMi43NTI0WiIgZmlsbD0iIzFGMUYyOSIvPgo8cGF0aCBkPSJNNTk1LjE5MyAxMi43NTI0VjI2LjMwMjhINTYyLjEyOFY0MS4xNTUxSDU5NS4xOTNWNTQuNzA2NUg1NjIuMTI4VjcxLjgzNEg1OTUuMTkzVjg1LjM4NDRINTQ3LjM5NVYxMi43NTI0SDU5NS4xOTNaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik0xNjcuMjAxIDU3LjQxNThIMTg2LjUzNkMxOTAuODg2IDU3LjQ2NjIgMTk1LjE2OCA1Ni4zMzQ4IDE5OC45MTggNTQuMTQzN0MyMDIuMTc5IDUyLjIxOTkgMjA0Ljg2OSA0OS40NzM2IDIwNi43MTYgNDYuMTgzNUMyMDguNTYyIDQyLjg5MzQgMjA5LjUgMzkuMTc2NiAyMDkuNDMzIDM1LjQxMDJDMjA5LjQzMyAyMS45Njc1IDE5OC45NTggMTIuNzU3NCAxODQuMzM0IDEyLjc1NzRIMTUyLjQ2OFY4NS4zODk0SDE2Ny4yMDFWNTcuNDIwN1Y1Ny40MTU4Wk0xNjcuMjAxIDI2LjMwNThIMTg0LjMyOUMxOTAuNjU4IDI2LjMwNTggMTk0LjY5NiAyOS44ODQgMTk0LjY5NiAzNS40MTMzQzE5NC42OTYgNDAuODMyOSAxOTAuNjU4IDQ0LjQwOTkgMTg0LjMyOSA0NC40MDk5SDE2Ny4yMDFWMjYuMzA1OFoiIGZpbGw9IiMxRjFGMjkiLz4KPHBhdGggZD0iTTc5NC44MzUgMTIuNzUyNEg4NjAuMjA2VjI2LjMwMjhIODM0Ljg4OVY4NS4zODQ0SDgyMC4xNTZWMjYuMzAyOEg3OTQuODM1VjEyLjc1MjRaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik03NDEuOTA3IDU3LjQxNThINzYxLjI0MUM3NjUuNTkyIDU3LjQ2NjEgNzY5Ljg3NCA1Ni4zMzQ3IDc3My42MjQgNTQuMTQzN0M3NzYuODg0IDUyLjIxOTkgNzc5LjU3NSA0OS40NzM2IDc4MS40MjEgNDYuMTgzNUM3ODMuMjY4IDQyLjg5MzQgNzg0LjIwNiAzOS4xNzY2IDc4NC4xMzkgMzUuNDEwMkM3ODQuMTM5IDIxLjk2NzUgNzczLjY2NCAxMi43NTc0IDc1OS4wMzkgMTIuNzU3NEg3MjcuMTc1Vjg1LjM4OTRINzQxLjkwN1Y1Ny40MjA3VjU3LjQxNThaTTc0MS45MDcgMjYuMzA1OEg3NTkuMDM1Qzc2NS4zNjUgMjYuMzA1OCA3NjkuNDAzIDI5Ljg4NCA3NjkuNDAzIDM1LjQxMzNDNzY5LjQwMyA0MC44MzI5IDc2NS4zNjUgNDQuNDA5OSA3NTkuMDM1IDQ0LjQwOTlINzQxLjkwN1YyNi4zMDU4WiIgZmlsbD0iIzFGMUYyOSIvPgo8cGF0aCBkPSJNNjgxLjA2OSA0Ny4wMTE1VjU5LjAxMjVINjk1LjM3OVY3MS42NzE5QzY5Mi41MjYgNzMuNDM2OCA2ODguNTI0IDc0LjMzMTkgNjgzLjQ3NyA3NC4zMzE5QzY2Ni4wMDMgNzQuMzMxOSA2NTguMDQ1IDYxLjgxMjQgNjU4LjA0NSA1MC4xOEM2NTguMDQ1IDMzLjk2MDUgNjcxLjAwOCAyNS40NzMyIDY4My44MTIgMjUuNDczMkM2OTAuNDI1IDI1LjQ2MjggNjk2LjkwOSAyNy4yODA0IDcwMi41NDEgMzAuNzIyNkw3MDMuMTU3IDMxLjEyNTRMNzA1Ljk1OCAxOC4xODZMNzA1LjY2MyAxNy45OTc3QzcwMC4wNDYgMTQuNDAwNCA2OTEuMjkxIDEyLjI1OSA2ODIuMjUxIDEyLjI1OUM2NjMuMTk3IDEyLjI1OSA2NDIuOTQ5IDI1LjM5NjcgNjQyLjk0OSA0OS43NDVDNjQyLjk0OSA2MS4wODQ1IDY0Ny4yOTMgNzAuNzE3NCA2NTUuNTExIDc3LjYwMjlDNjYzLjIyNCA4My44MjQ1IDY3Mi44NzQgODcuMTg5IDY4Mi44MDkgODcuMTIwMUM2OTQuMzYzIDg3LjEyMDEgNzAzLjA2MSA4NC42NDk1IDcwOS40MDIgNzkuNTY5Mkw3MDkuNTg5IDc5LjQxODFWNDcuMDExNUg2ODEuMDY5WiIgZmlsbD0iIzFGMUYyOSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzVfMTkiPgo8cmVjdCB3aWR0aD0iNzA3Ljc3OCIgaGVpZ2h0PSI3NC44NjExIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTUyLjQ0NCAxMi4yNSkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K" diff --git a/private_gpt/ui/images.py b/private_gpt/ui/images.py index 6705b57e..791de71a 100644 --- a/private_gpt/ui/images.py +++ b/private_gpt/ui/images.py @@ -1 +1 @@ -logo_svg = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iODYxIiBoZWlnaHQ9Ijk4IiB2aWV3Qm94PSIwIDAgODYxIDk4IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8cGF0aCBkPSJNNDguMTM0NSAwLjE1NzkxMUMzNi44Mjk5IDEuMDM2NTQgMjYuMTIwNSA1LjU1MzI4IDE3LjYyNTYgMTMuMDI1QzkuMTMwNDYgMjAuNDk2NyAzLjMxMTcgMzAuNTE2OSAxLjA0OTUyIDQxLjU3MDVDLTEuMjEyNzMgNTIuNjIzOCAwLjIwNDQxOSA2NC4xMDk0IDUuMDg2MiA3NC4yOTA1QzkuOTY4NjggODQuNDcxNiAxOC4wNTAzIDkyLjc5NDMgMjguMTA5OCA5OEwzMy43MDI2IDgyLjU5MDdMMzUuNDU0MiA3Ny43NjU2QzI5LjgzODcgNzQuMTY5MiAyNS41NDQ0IDY4Ljg2MDcgMjMuMjE0IDYyLjYzNDRDMjAuODgyMiA1Ni40MDg2IDIwLjYzOSA0OS41OTkxIDIyLjUyMDQgNDMuMjI0M0MyNC40MDI5IDM2Ljg0OTUgMjguMzA5NiAzMS4yNTI1IDMzLjY1NjEgMjcuMjcwNkMzOS4wMDIgMjMuMjg4MyA0NS41MDAzIDIxLjEzNSA1Mi4xNzg5IDIxLjEzM0M1OC44NTczIDIxLjEzMDMgNjUuMzU3MSAyMy4yNzgzIDcwLjcwNjUgMjcuMjU1OEM3Ni4wNTU0IDMxLjIzNCA3OS45NjY0IDM2LjgyNzcgODEuODU0MyA0My4yMDA2QzgzLjc0MjkgNDkuNTczNiA4My41MDYyIDU2LjM4MzYgODEuMTgwMSA2Mi42MTE3Qzc4Ljg1NDUgNjguODM5NiA3NC41NjUgNzQuMTUxNCA2OC45NTI5IDc3Ljc1MjhMNzAuNzA3NCA4Mi41OTA3TDc2LjMwMDIgOTcuOTk3MUM4Ni45Nzg4IDkyLjQ3MDUgOTUuNDA4OCA4My40NDE5IDEwMC4xNjMgNzIuNDQwNEMxMDQuOTE3IDYxLjQzOTQgMTA1LjcwNCA0OS4xNDE3IDEwMi4zODkgMzcuNjNDOTkuMDc0NiAyNi4xMTc5IDkxLjg2MjcgMTYuMDk5MyA4MS45NzQzIDkuMjcwNzlDNzIuMDg2MSAyLjQ0MTkxIDYwLjEyOTEgLTAuNzc3MDg2IDQ4LjEyODYgMC4xNTg5MzRMNDguMTM0NSAwLjE1NzkxMVoiIGZpbGw9IiMxRjFGMjkiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzVfMTkpIj4KPHBhdGggZD0iTTIyMC43NzIgMTIuNzUyNEgyNTIuNjM5QzI2Ny4yNjMgMTIuNzUyNCAyNzcuNzM5IDIxLjk2NzUgMjc3LjczOSAzNS40MDUyQzI3Ny43MzkgNDYuNzg3IDI2OS44ODEgNTUuMzUwOCAyNTguMzE0IDU3LjQxMDdMMjc4LjgzIDg1LjM3OTRIMjYxLjM3TDI0Mi4wNTQgNTcuOTUzM0gyMzUuNTA2Vjg1LjM3OTRIMjIwLjc3NEwyMjAuNzcyIDEyLjc1MjRaTTIzNS41MDQgMjYuMzAyOFY0NC40MDdIMjUyLjYzMkMyNTguOTYyIDQ0LjQwNyAyNjIuOTk5IDQwLjgyOTggMjYyLjk5OSAzNS40MTAyQzI2Mi45OTkgMjkuODgwOSAyNTguOTYyIDI2LjMwMjggMjUyLjYzMiAyNi4zMDI4SDIzNS41MDRaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik0yOTUuMTc2IDg1LjM4NDRWMTIuNzUyNEgzMDkuOTA5Vjg1LjM4NDRIMjk1LjE3NloiIGZpbGw9IiMxRjFGMjkiLz4KPHBhdGggZD0iTTM2My43OTUgNjUuNzYzTDM4NS42MiAxMi43NTI0SDQwMS40NDRMMzcxLjIxNSA4NS4zODQ0SDM1Ni40ODNMMzI2LjI1NCAxMi43NTI0SDM0Mi4wNzhMMzYzLjc5NSA2NS43NjNaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik00NDguMzI3IDcyLjA1MDRINDE1LjY5OEw0MTAuMjQxIDg1LjM4NDRIMzk0LjQxOEw0MjQuNjQ3IDEyLjc1MjRINDM5LjM3OUw0NjkuNjA4IDg1LjM4NDRINDUzLjc4M0w0NDguMzI3IDcyLjA1MDRaTTQ0Mi43NjEgNTguNUw0MzIuMDY2IDMyLjM3NDhMNDIxLjI2MiA1OC41SDQ0Mi43NjFaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik00NjUuMjIxIDEyLjc1MjRINTMwLjU5MlYyNi4zMDI4SDUwNS4yNzVWODUuMzg0NEg0OTAuNTM5VjI2LjMwMjhINDY1LjIyMVYxMi43NTI0WiIgZmlsbD0iIzFGMUYyOSIvPgo8cGF0aCBkPSJNNTk1LjE5MyAxMi43NTI0VjI2LjMwMjhINTYyLjEyOFY0MS4xNTUxSDU5NS4xOTNWNTQuNzA2NUg1NjIuMTI4VjcxLjgzNEg1OTUuMTkzVjg1LjM4NDRINTQ3LjM5NVYxMi43NTI0SDU5NS4xOTNaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik0xNjcuMjAxIDU3LjQxNThIMTg2LjUzNkMxOTAuODg2IDU3LjQ2NjIgMTk1LjE2OCA1Ni4zMzQ4IDE5OC45MTggNTQuMTQzN0MyMDIuMTc5IDUyLjIxOTkgMjA0Ljg2OSA0OS40NzM2IDIwNi43MTYgNDYuMTgzNUMyMDguNTYyIDQyLjg5MzQgMjA5LjUgMzkuMTc2NiAyMDkuNDMzIDM1LjQxMDJDMjA5LjQzMyAyMS45Njc1IDE5OC45NTggMTIuNzU3NCAxODQuMzM0IDEyLjc1NzRIMTUyLjQ2OFY4NS4zODk0SDE2Ny4yMDFWNTcuNDIwN1Y1Ny40MTU4Wk0xNjcuMjAxIDI2LjMwNThIMTg0LjMyOUMxOTAuNjU4IDI2LjMwNTggMTk0LjY5NiAyOS44ODQgMTk0LjY5NiAzNS40MTMzQzE5NC42OTYgNDAuODMyOSAxOTAuNjU4IDQ0LjQwOTkgMTg0LjMyOSA0NC40MDk5SDE2Ny4yMDFWMjYuMzA1OFoiIGZpbGw9IiMxRjFGMjkiLz4KPHBhdGggZD0iTTc5NC44MzUgMTIuNzUyNEg4NjAuMjA2VjI2LjMwMjhIODM0Ljg4OVY4NS4zODQ0SDgyMC4xNTZWMjYuMzAyOEg3OTQuODM1VjEyLjc1MjRaIiBmaWxsPSIjMUYxRjI5Ii8+CjxwYXRoIGQ9Ik03NDEuOTA3IDU3LjQxNThINzYxLjI0MUM3NjUuNTkyIDU3LjQ2NjEgNzY5Ljg3NCA1Ni4zMzQ3IDc3My42MjQgNTQuMTQzN0M3NzYuODg0IDUyLjIxOTkgNzc5LjU3NSA0OS40NzM2IDc4MS40MjEgNDYuMTgzNUM3ODMuMjY4IDQyLjg5MzQgNzg0LjIwNiAzOS4xNzY2IDc4NC4xMzkgMzUuNDEwMkM3ODQuMTM5IDIxLjk2NzUgNzczLjY2NCAxMi43NTc0IDc1OS4wMzkgMTIuNzU3NEg3MjcuMTc1Vjg1LjM4OTRINzQxLjkwN1Y1Ny40MjA3VjU3LjQxNThaTTc0MS45MDcgMjYuMzA1OEg3NTkuMDM1Qzc2NS4zNjUgMjYuMzA1OCA3NjkuNDAzIDI5Ljg4NCA3NjkuNDAzIDM1LjQxMzNDNzY5LjQwMyA0MC44MzI5IDc2NS4zNjUgNDQuNDA5OSA3NTkuMDM1IDQ0LjQwOTlINzQxLjkwN1YyNi4zMDU4WiIgZmlsbD0iIzFGMUYyOSIvPgo8cGF0aCBkPSJNNjgxLjA2OSA0Ny4wMTE1VjU5LjAxMjVINjk1LjM3OVY3MS42NzE5QzY5Mi41MjYgNzMuNDM2OCA2ODguNTI0IDc0LjMzMTkgNjgzLjQ3NyA3NC4zMzE5QzY2Ni4wMDMgNzQuMzMxOSA2NTguMDQ1IDYxLjgxMjQgNjU4LjA0NSA1MC4xOEM2NTguMDQ1IDMzLjk2MDUgNjcxLjAwOCAyNS40NzMyIDY4My44MTIgMjUuNDczMkM2OTAuNDI1IDI1LjQ2MjggNjk2LjkwOSAyNy4yODA0IDcwMi41NDEgMzAuNzIyNkw3MDMuMTU3IDMxLjEyNTRMNzA1Ljk1OCAxOC4xODZMNzA1LjY2MyAxNy45OTc3QzcwMC4wNDYgMTQuNDAwNCA2OTEuMjkxIDEyLjI1OSA2ODIuMjUxIDEyLjI1OUM2NjMuMTk3IDEyLjI1OSA2NDIuOTQ5IDI1LjM5NjcgNjQyLjk0OSA0OS43NDVDNjQyLjk0OSA2MS4wODQ1IDY0Ny4yOTMgNzAuNzE3NCA2NTUuNTExIDc3LjYwMjlDNjYzLjIyNCA4My44MjQ1IDY3Mi44NzQgODcuMTg5IDY4Mi44MDkgODcuMTIwMUM2OTQuMzYzIDg3LjEyMDEgNzAzLjA2MSA4NC42NDk1IDcwOS40MDIgNzkuNTY5Mkw3MDkuNTg5IDc5LjQxODFWNDcuMDExNUg2ODEuMDY5WiIgZmlsbD0iIzFGMUYyOSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzVfMTkiPgo8cmVjdCB3aWR0aD0iNzA3Ljc3OCIgaGVpZ2h0PSI3NC44NjExIiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTUyLjQ0NCAxMi4yNSkiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K" +logo_svg = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcxIgogICB3aWR0aD0iNDY1LjkyMDAxIgogICBoZWlnaHQ9IjE1NC4yNDAwMSIKICAgdmlld0JveD0iMCAwIDQ2NS45MjAwMSAxNTQuMjQwMDEiCiAgIHNvZGlwb2RpOmRvY25hbWU9IlIgLSBDb3B5LnN2ZyIKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4zLjIgKDA5MWUyMGUsIDIwMjMtMTEtMjUsIGN1c3RvbSkiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIgogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnMxIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0ibmFtZWR2aWV3MSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiMwMDAwMDAiCiAgICAgYm9yZGVyb3BhY2l0eT0iMC4yNSIKICAgICBpbmtzY2FwZTpzaG93cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTpwYWdlb3BhY2l0eT0iMC4wIgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgICAgaW5rc2NhcGU6ZGVza2NvbG9yPSIjZDFkMWQxIgogICAgIGlua3NjYXBlOnpvb209IjEuODk3MzIxNCIKICAgICBpbmtzY2FwZTpjeD0iMjMzLjIyMzU0IgogICAgIGlua3NjYXBlOmN5PSI3Ny4yMTQxMiIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjI0MDAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTI3MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMTY5MSIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTkiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIKICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJnMSIgLz4KICA8ZwogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaW5rc2NhcGU6bGFiZWw9IkltYWdlIgogICAgIGlkPSJnMSI+CiAgICA8aW1hZ2UKICAgICAgIHdpZHRoPSI0NjUuOTIwMDEiCiAgICAgICBoZWlnaHQ9IjE1NC4yNDAwMSIKICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiCiAgICAgICB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQmJBQUFBSGlDQVlBQUFBNTBlcFVBQUFBQ1hCSVdYTUFBQzRqQUFBdUl3RjRwVDkyQUFBQSYjMTA7R1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBZ2JwSlJFRlVlTnJzM2U5WjNMamVNR0FuMmUvdyYjMTA7VnNDY0NpQVY0SzBnbkFveXFTQnNCWmxVRUxhQ1RDcFlVa0dHQmc1UXdRNFZIUGorSk9lMWdtWXptZkJubUpGdDJiN3Y2L0lGSWVDeCYjMTA7WlVtV2ZwYWxaLy8zbjJmL0t3Q2c4dUxsdDJkU0FRQUFBTWpGYzBrQUFBQUFBRUNPQkxBQkFBQUFBTWlTQURZQUFBQUFBRmtTd0FZQSYjMTA7QUFBQUlFc0MyQUFBQUFBQVpFa0FHd0FBQUFDQUxBbGdBd0FBQUFDUUpRRnNBQUFBQUFDeUpJQU5BQUFBQUVDV0JMQUJBQUFBQU1pUyYjMTA7QURZQUFBQUFBRmtTd0FZQUFBQUFJRXNDMkFBQUFBQUFaRWtBR3dBQUFBQ0FMQWxnQXdBQUFBQ1FwZCsyK051ekZ5Ky9sWklRSUM5ZiYjMTA7ejUvUHFpK0hVZ0lBQUFEb09pT3dBUUFBQUFESWtnQTJBQUFBQUFCWkVzQUdBQUFBQUNCTEF0Z0FBQUFBQUdSSkFCc0FBQUFBZ0N3SiYjMTA7WUFNQUFBQUFrQ1VCYkFBQUFBQUFzaVNBRFFBQUFBQkFsZ1N3QVFBQUFBRElrZ0EyQUFBQUFBQlpFc0FHQUFBQUFDQkxBdGdBQUFBQSYjMTA7QUdSSkFCc0FBQUFBZ0N3SllBTUFBQUFBa0NVQmJBQUFBQUFBc2lTQURRQUFBQUJBbGdTd0FRQUFBQURJa2dBMkFBQUFBQUJaRXNBRyYjMTA7QUFBQUFDQkxBdGdBQUFBQUFHUkpBQnNBQUFBQWdDd0pZQU1BQUFBQWtDVUJiQUFBQUFBQXNpU0FEUUFBQUFCQWxnU3dBUUFBQUFESSYjMTA7a2dBMkFBQUFBQUJaRXNBR0FBQUFBQ0JMQXRnQUFBQUFBR1JKQUJzQUFBQUFnQ3dKWUFPZDhmWDgrVzYxVGF2dGY5VTJreUlBQUFBQSYjMTA7L1NhQURYUkNDRjVYWDJiVjlqcis2TEQ2MllHVUFRQUFBT2d2QVd5Z0swNnJiWC9sWjBlU0JRQUFBS0MvQkxDQjdIMDlmMzVTZlRtOCYjMTA7NDc5MnBRNEFBQUJBZndsZ0E2MExBZXBxdTdqbi84cnF5OXQ3L3RRVUlnQUFBQUE5Sm9BTnRPcnIrZk5KY1J1ZzNxKytIOS94SzFPcCYjMTA7QkFBQUFEQk12MGtDb0MxeGRQVzdwUjlOaXFXQWRReG83MGtwZ0h2cjBmQW15a1BUS1YyOGVQbnRXa3ExZG4zQ2ZXelU5T2RXMTN3aSYjMTA7OVpVMUFJQytFTUFHMnVvSWhrN2dkT1hIZTZHelgzVUFwL0gvZGNBQmZxNDN4OFh0QXJhSFQvaTc4T1d5Mm1iVmRsTFZzWE9wMlpqeCYjMTA7VTY1VlF1NmZ5aG9BUUcrWVFnUm9TK2hjM3pXNitpaCtQUzZNdmdiNDd1djU4MUEzenF2dFE3RlpRSFMvdUoydTZlOTdwbXNDaW45RyYjMTA7elN0ckFBQVpFY0FHMnVnY0hoVDNMOHk0V014UnB3L2d0czRjRmJkdnJPd2sydVhIT0lVVDhHdForNmlzQVFEa1JRQWJhTVBKUFQrLyYjMTA7Q3ZOMm12c2E0Q2VUSWwxQWJlRllzc0tkWmExUTFnQUE4aUtBRFRRcWprUzY3NVhjY1kwZFNJQ3VLbXZZNXl2SkNyODRVdFlBQVBJaiYjMTA7Z0EwMGJYTFB6eis5ZVBsdEZ1ZDVYWGYwOVV4eUFnTlF5eHNwY1Rvbm9QaG40Y1lkWlEwQUlEKy9TUUtnU1M5ZWZpdnY2TlNGVHVOaSYjMTA7N211djJ0SkpNZmpSdFNERlJWVW1yenVZMW1XSERuZGVwZkU4MDNQZFZYTGhId2ZLR2dCQW5nU3dnVmE5ZVBsdEViaGVMSjUwK0lRLyYjMTA7djVDQ1pDUUVQNzUwN0pqL0tPNmZrejVMOGFGWGw5TDVmV0ZhSkFBQWdJMEpZQVBKTEkxQVhZeXFmbXhFNm16bDMrVVRQL0phcXNOVyYjMTA7d3BROUp4MDc1dEpsQXdBQUdBNEJiR0FyTVdnOWp0ditFLy84Y011UG43c0NzSlhEVUlZN05vM0kyR1ZMcGl5c0pRQUFBR1JPQUJ2WSYjMTA7U0F4Y1Q2cnRiVnZIc00yOHNzQS93aWpzYVlmcW5YMlhMQmwxS0FBQWtMM25rZ0I0cWpnSGJaaC8rcTNVZ000N2NxeUROWmNFQUFCQSYjMTA7N296QUJwNGtCcTluMWJiVDhxR2N1UnFRUk5taFl4WEFCZ0FBR0JnQmJHQnRHUVd2Z1hSMnFySjk5T0xsdDlNT0hHczV3T3N6bDBXNyYjMTA7cXlwWDVSMzMwdFdmTFJZOEhsZmJubFJyallXaEFRQXlKWUFOckNYT1BUc3Q4Z2xlWDdncWtFd1kyWngxQURzRTJZc0JQandMYy8xWCYjMTA7NTY0ZTdkYzFuZDN4NDlNWTJCYkFidSs2WENockFBQjVNZ2MyOEtnWXZBNGQ3cHdXVDd1T3gzWVJSNFlEbXlzZFk5YnFtRExwNnNYTCYjMTA7YjBhY3dzOHVsVFVBZ1B3SVlBUHJtQlo1QmErRDY2L256OGZ4dUdieGUyQXpleDE0RURUaythK25IZGtuZE4ySnNnWUFrQjhCYk9CQiYjMTA7WDgrZmg0N1hxd3dQTGJ5T080bmZoMmtGUGdwaXcxYXlEUkRINFBwZ3AxWjQ4ZkpicUlkVGpzSU9vMHhQWkhtNHM2eGRLbXNBQUhrUiYjMTA7d0FidUZRUENyek05dkhCc3F3RXRRV3pZWE00am5NdWhYNXk0R09EN2FydlpjbGVmUW5xYTBnRHVMV3NIeWhvQVFGNHM0Z2pjS1M0bSYjMTA7OVRIalF5enYrWGtJWWk5R1VRSHIyNi9Lemlnc0dwamhzWTFkbnUrQnRVbjFaUkpIcElkdEZQOHJmTDk3eDUvTWxyKy9aL0ZBNFA2eSYjMTA7VnE2VXI4ZktXZ2hXWHlockFBQnBDV0FEdjRqQmtkUE1EL09oNlFRRXNXbERDRnhjRmQyZTZpS013czdxZGZjUVZDL3ltNE4vWFdFRSYjMTA7NXp6MVRxdTZMVXloZEtISVFiMWlJSG9tSlFBQTJpV0FEZnprNi9uek1MSm9XdHpPSzkxbGd0ZzBLZ1lWUnl2bGFiVHlzK1hSZStNaSYjMTA7djJCM1dlUTNYMnVaMmZGY0ZUOFdaWnNYUHdlb3IyTStBQUFBSUJFQmJHRFZ0T2p1YU1kVmd0aTBLazdITVYvNjBXenhUWHcxUGJjQSYjMTA7OXF2d0VDdXpPVnR6bTV0N0hxY1hBQUFBb0FFV2NRVCs4Zlg4K2FUNjhxcG5wL1V4QmdxQjllUVdNSDdsa2dBQUFBeVhBRGJ3M2RmeiYjMTA7NXlGbzlhNm5wM2NhNS9VR0hsZG1WaThCQUFBd1lBTFl3R0xSeG1tUFR6SE01MzBhNS9jR0huYmtXQUFBQU1pRkFEWU1YSThXYlh4TSYjMTA7bUd0NDRvclRVMWNKOTdXVDBjam5Nc0UrYnFydFRCWUJBQURvSmdGc1lGcjBaOUhHWlhjRjlONjYzUFRVYWVMOWxXMmZVSHd6WkMvRCYjMTA7dEFFQUFLQkJBdGd3WUQxZHRQRlR0ZjNyeGN0dm8ycDdGdis5Zk02bEswOFBUUlB2TDRjUjJLbU9ZU1o3QUFBQWROZHZrZ0NHS1FaeSYjMTA7KzdobzQ2amEvcG5yK3NYTGIrUHFYRit2L0QvMFNwWFBMNnA4SHQ0NjJFdTB5NzB3QWpyc3Q4WFRTaFhBRGlPd3gzSkpKKzlSd2NGeSYjMTA7blg3SHY5Y1I4dkgxSGYrK2JqbVBkL0dhN01ackVKUVAvUHAxVE9kRmVzK2xkVGJYY1JUYlFzdGxxWHhpT1pvcFAwK3V5MFlyYmREUiYjMTA7Qm0zUzJUMy92cWl1eGJYVXJ2MWFMdXEvUmRsWnJnL1hLVE9oSHB4TFNZRE5DR0REY0RzdmZYMnQvckRhenF0emZGODFFaWZ4WjJFVSYjMTA7OXV1bERnUDBVU2pUS2FmSk9TcCtCS0RhcUtOU1RHMzBPWFRxcS8zbFhCK1AyNmlYbHVySEhPNUg1VkpRSUd5cDEyUTRmT0R6dzVlYiYjMTA7bU5jWDIyem9RWWFsNjdLNE5wdVV4MWQzcEhXWWozNVdiZE9tMDNpb1pTMU94MVRHT24yYjhyVmNqdDZ0WE5PTGVFMHZjcjhlZGVXOSYjMTA7bHVxeWR5dmw2N0xhNWt2MTJDeVQrcVNOTWhDQ3hkTkVaV2V4N1NRb016ZXhEZ3h0dGxNUEhnRFc5K3ovL3ZQc2Z4dis3VmxWNFphUyYjMTA7RURyWEtkMk5EYWY5QVp6dVpmRmpGT2RGYkhpK3p5VndVK00xbmhVUEJHd2U2V2cvVTByeXYwNTNYYmZZMFRwUFdYNnEvUjYwbERiSCYjMTA7MVpjUENYYjFKblJnVTZaMTZ2WlA0bVByUkZtUGdaN2pXRC92WlZwRXIyS0FZZHJVS05QVWRjS0c3WU54M0pwb0k0VEE1NlNwSU51USYjMTA7eWxxOGxxRjhUUm91WTZIY1RLdnQ1TEhBWEZ2WG8vSjdxandYUjFlSDhsSm1YSmQ5TGxvT2xsYnA5TDhXUG5hamUzVnNTNDBidkQ5OSYjMTA7aXZYZ1hNc1k0R0htd0liaG1SYkRDRjRYOFR3dmloOGpKMjVjZnZvcUJ0bXVVcGFmR0doc1E1bG9QeFp3ekVnSTlzU2cxZC9GN2RzQyYjMTA7ZXhrZjdsNDh4dkJHenp5T0Z1M3pkUWx0Zy84V3R3K09tbW9qaE9EbGwrcXpUMlBBbFRUWE0rVFZlYlY5YktHTWhjOExJMDFEbVpuMCYjMTA7OGJxR2N3b1BXVU85RVBKdmNmdUdYODUxMmF1WUY4STFtYlo0WDgrKzNGUmJhRWVkTjN4L0N2bm43NVpHcVFOMGlnQTJES3R4TmkzNiYjMTA7dDJqalkzWml3MzB4Mms5QWl6NUxuYi9MTm9JRGllcXBTNi9tWm5QdkdjWEFkUWoySEhid0ZFSWc0Mk1JYnNUUmVYMjVMdVhTZFhuZCYjMTA7NHFHRThqN3ZVOXEyZEQxMzQvWDhXS1NmdW1LVHR0Y2lrSDNVb3pSZVRLMzFvY2c3YUgzZk5Wa0VTMDg4TlBybm1vN2p3NGhRYnRvYyYjMTA7NFBNdWxGL1hCZUIrQXRnd25BYmF0T1VPYXR2Q3VaOFVQeS9rQlgyVE9vRGRSdUNoVExTZnFleVFSM0NndUEzNEhQYmdkRUp3NDd6ciYjMTA7bzdGRG9EakRCd29odURZVHhONzhtbVphenNKMS9TdTJRYnVjdnJ2eEhQNHF1aGU0dmtzWVlYd3g1UElXSGtZc0JhNXp1YWFIc1I0VSYjMTA7eEFhNGd3QTJES09SRmhyZHI2WEU3WlFpU3l2Q1E2L0VlVDFUVHBYenFvV09WS3FndWJjdDJyLzNqSXM4Um9PbTlyR0xRZXdZaEFzUCYjMTA7Y3NNcjhqaytVQWo1WkNwNDgrVHJPaXB1MXpiSk9iRDZPcjdCc052RmNoUFR0Mi90NkpCZlpuMGFJYjl1ZVlrUDhISjlHQkg2S2lkcSYjMTA7Tm9CZkNXQkQveHRxMDBMd2VyV0QvTVZjYy9SWTE2Y1JTZEdadnJRZ1V1djNubkZ4Rzd6dXE0OWRDdnpFQjdkaGhPN2J6QTgxQkcvYyYjMTA7bjllL3JydXh6dS9DUTZKd2JiczR1blJXOUhmdG1NVUkrWU9CbEpmam9odHZCTDAyMkFiZ1Z3TFkwTytHMnJRUXZMNlB1ZWJvcTg1TyYjMTA7SXhJNzBTa0NNVFBab05WN1QraDRmeHpBcVhaaXRIQjhZQnVtQytuSzFBZHZMVFMzdG5CdHV4UmM3VlFRTzc2eE1JU0Z6M3ZkSG81diYjMTA7bjRTMjBZZWlPMjhFVFZWdkFEOFR3SWIrTnRaQ3cwZncrbUZoQk1hRk9UZnBreGN2djRWT1dzcHBSSm9jWlRyVzhldCtvS0FZenZRdCYjMTA7SVJCeWt2TzFpRUdiZHgxTTIyT2w2ZEhyRzlvdWJ6dDQ2TitEMk5XMm0zbjZsaDFOMzAzcnNtbVB5MGtZZGQyMVJlejNoamE5QzhCaiYjMTA7QkxDaG40MjEwQWdWdkY2emdWamNqandaU3dwNkpHVUFjYWZCVjFsVGZNN1ZpNWZmTG1TQjFreUsvczE1L1pEWE9ZNFdqa0diV2RHOSYjMTA7b00yQ2UvTGp1anhQN242Ui84am15Y0R5MDZ1K1RWc1JBOEN6b3JzTGI2b0hBWllJWUVQUENGNXZKQVJiUHNaWFJhRVBPamVOU0F3QyYjMTA7N21kNDdqenRHcjRkNEttUE16eW1XZEh0cVE5MmpENThzS3lWUmY3eitIWTVmUThHbXI2VEhwMUx1SVovRmQxK29QcEthUVQ0UVFBYiYjMTA7K3RYZ25oYUMxOXQ0YTE1cytxQ2owNGlrK2d3QjdQWU1kZHFIY1liSDFJZFI4S1VpMWFrOEozMjc3N0JIMCtyMTRrMGdpemtDL0NDQSYjMTA7RFQwaGVKMnU4VjdjVGlsaVhteTZicFp3WDNzTmxJa1VuYlNiRnkrL3pWejYxb3dIZXQ1N0ZoMnNoZnZ3M2UyOVhlMjkyZzE1OVAvWSYjMTA7NWM5S0tRa0FidjBtQ2FBWG5abXB6a3hTM3hjWUNxTWV6S1ZMaDRXUnlDbGZQdzJkcUZyS1F3ekl2RXAwenJSekh3b0JuNlpHdkYxViYjMTA7MjN5TjN6dG84SmhDK1pqS0NVbVpJdU51cGxiWnJ1NjRmcVF1Qy9WR1hYTW1ueFczRDVjdjRuSE1xM2JtL0pIaktaZnFtRkc4L2pzMSYjMTA7NTYvVWI5TmNGdDJlMHFoTnBTUUF1Q1dBRGQwUEdvUU9zK0IxZXFGemNGNmw3NXVxY3pHVkhIUlFDT1orVExpL2NWSGZvbUdEblQ2ayYjMTA7cWwvS3BmbzhCRTUySCtpOGhtdVE2MkpVZFFiVlBzZHJlN0hKUThXWXJnY3hMZXNLL2hndFhFOGI1eURWZzJSbGJTdGhTcXE3cmtNdSYjMTA7RHhrK0ZiY1B0YTVYanZQUkFIRURaZmttM2p0UHFtTzUzaURmenVLM3M2WDh1d2d5MTVIKzM5OG8yU0RkSGpxSGc1VnlQU3B1Zy9ITCYjMTA7YWI0b2orL1VmRDhaU1FLQVd3TFkwTjFPM1NoMjZJMW9xRmRZM0xFUXhLWnJRa2U1eXJzaDhKZHFGUForNms3dGtqTFJPWjkyL0pyZCYjMTA7RlNDYUxkWDdJWjJHRkZRTFFhbkp0bmt1cG12WXBqRWR4OFZ0UUNsbElMdnJBZXlybU5mbXhZL1JvVVg4T2w4NXYvRDlLSmJidXRzZyYjMTA7dThwYVBmWGxQUzVqMi9KN1huaHEyVnNaTGJ4NGFOVEVXeERUaE5OSEhTUk96M0tUd1BVYTk3clRtdXF5eGZXcnJkMGI4OVg4bnJMWCYjMTA7WmdEN2NxVWVYSmpIdW1oM0pZMFc5V0NkZFVXdTlSQkE0d1N3b1lOaUIrRzA2TWtDSlIzd01RYnVKcEtDanFsakdwRTZPclVwZ3ArZiYjMTA7WGU3VzdrbDFUTlZSMjlzdlliL1ZNUytDZEtrQ3NGME1ZQzlHdHMvV0NGVE83dm8rUGt3UDk4YTYzZ1E3S05MTzU2K3MzWjhYamhNOCYjMTA7TEpyZGtVZkNNWS9qMW9WMmE2cXlIQjRLSlE5ZTMxR1hoVURyZWFacGtMdWJXQWN1NnNHblhLdlpTcjhzMUlPSE5aWDd1Z1lQQUhTSyYjMTA7UlJ5aGU1MlgwQUg0VWdoZU4rMWRuSzRGdWlUMWlPVGtvMnhqeDI4bnczTmxmYW1ESFgvVS9kWkxERlNFdkhlVGFKZGR1U2VIRVlaLyYjMTA7Vk52L3E5TGdLS1R6Tm9HUjhMZlZGdG9sdnlkTXkyVzdpdGRQeWhyMitTYm1oWGxOWlMxTS9ST0M0K0ZhdmlsdUE3czVTNVhuanVzTSYjMTA7WGkrbmIvWGxmZVoxZW03Q0E1dC9oendaNnE4d29uMmJheFVlM01RcGl0N1hkTHdqVlIrQUFEWjBTZ3lnZnBRU3JYa2RIeUJBSjhRTyYjMTA7V2NxUnlhOXFPTXpCem4vZEl5bURIV2RWdmoxcHNId2tXNndzamtiT1ZaaU81ZmN3RjIxSTN4cW1OSmdWRmhmc1dsa0xHbDNuSXo0dyYjMTA7Q2VVa0JMSnZNazNqRkc5bFhEVTVwVlY4UXpCbGVvNTZXSFpDK3Z4WmJmK0tEMnhPYTdvT2Y2cW1BT29oZ0EwZEVEckY4UlZCaXpXMiYjMTA7NzJOY1BBZTZJbWtuclliOG4yVDZrQ1pHdW5HdmxFRzFTWk1ISG9OM3FRSS9vd3l2VFFoYy95dU9NcHpWbkpheitIa3BHWUZkWHg3NyYjMTA7MU5iNkh2RnpMM3A4bldZdGZHYkthOW1uZVpkRC9SNUdSby9pbXdEem1qOHYzTU91Q2dDU0U4Q0d6SDA5ZjM0Y0cva1dhOHpIVkJJdyYjMTA7NEk1MHNnQjJITEc2bCtFNThqVEo1b3l0TzhoNmp6Nk8zZzhCbTBYZ2V0N2c1NTVrbXJmNkl1VWN1eFBKV1p0NUM1K1orbUYxMXg4ZSYjMTA7aGNEMW16aE55S1NwaDl6eGMxTDNFMGFLRklBQU5tUXJ6QXNiUjExL0tNeDNuWnVkT0c4dlpDOEdyeTRUN3ZJb3czMlpQcVRsT3JIaiYjMTA7MS9HaWgrViswc2FpWDNFK1hxTVA2MmtYcGd3b2ZySW8zSjFwbk9xQnlVVUxaVytXZUpkZGYzaDAwZFliQm9VQU5rQXRCTEFoczg1SiYjMTA7bUdNNUJxN0RRbzFHWFFPNWRhWjJFbmJ5VXdTd0x3VmlXcjF2bFFsM04ydnBOQzVjeWFSbWtxQVdLUU9LSHZyZExkVkRncmFtdExwMCYjMTA7Q2RzWDJ5UTNVZ0lnTFFGc3lDY0lFRG9UL3kxdUYya1V1QVpTU2gyc0dDZW84MEtnSU1YcjhGT1h0emNFa3Z0aExnbHFrWElFOWt4eSYjMTA7MWlJRUxjK0s5Z0xZMW9Kd1B3UG9yZDhrQWJRdmpMcXV2cnlTRXQzcG9MUTBUeXRzSkl3R3F1cVpNRElyMWNPeE1ITDZPTUUrVWxBVyYjMTA7MjNXUU1wKzJkQTd6aEdraFB3cmM1RjdXTGkxNmU2K1FMcC92eU1QWGQvMHNUcG1UazFDWHBab24zUUtxK1Z3TEFBb0JiTWpGa1NUbyYjMTA7bEdOSlFBZE5pOXM1OVZQWUN3c3diaGx3TEJNY3gxV0dBWVNoU1JYa09HdnJCT0lEbm0xM0V4NFFDUXJla2c1NVUyZmVYeGRjZEx4TiYjMTA7UGsrNHIvREF4RlF6ZVZ3TEFBb0JiR2hkZkkzZTZPdnUrTlRpb2pDd2pkQVIvWkJ3ZjZHVGY3TGwzNmM0SjBnaEJORG54YTlCaDd0KyYjMTA7ZG1FRUt5MUk5YkJvTGlrQmdLNFJ3SWIybFpLZ00wTHdlaXdaNktJYXBoRUpaV0dqQUhaMUhDRjR2WlBnR0thdWJPdFNUV3R3MFhMNSYjMTA7Y0M5R1dRTUF5SlJGSEtFL0hSTHFKWGhOSDh3Uzdtcy92a0d5aVRMQjU1cytKQStwUm9VYTBRek5VTllBZ000UndBWjRuT0ExZlRGTiYjMTA7dkwramh2OXUyY3psQkFBQTZEOEJiS0RMUGpYd0dXOEVyK21MT0dMNUt1RXVueHlJL25yK1BMeDFzcGZnczgxL0RmQjAzbHdCQURwSCYjMTA7QUJ2YTUxWE96YzFxM3Y4YkN6YlNReWtEdjJWRGY3UHFwaXFiQXRqcWN4aVNKRlBPV1lBVUFPZ2lBV3hvV0pnenR0cU9sK2FPTlJKbSYjMTA7Yy9OcU82dGh2emZWOW0vQmEzb3FaYjdlaVFzeVBzVTR3ZWNLWHVkalZ4SkFJM1lrQVFBd1ZMOUpBbWpPMS9QblpYRWJQQXF2ejArcSYjMTA7ZjA5ZXZQeDJVbjI5MFRIWjJLVGF2aVRlNTlUb1R2b3FUQ05TMVRsWFJacHBQSUlRd0Y2cnZNUUhkL3NKUG5QbVNtWmpYeElBUEhqdiYjMTA7QzZQbncvMXY4VFVZeFczVmdUNEJBUHhLQUJ1YWFiaUd4dXFrMnQ0dS9UZzBUajlVL3pjdWJrY1NDd0k4WGZuaTViZndJT0RQbGJUZCYjMTA7MW9ta3BlZE9FNWFaOGdtL2U1VHcrQUVncC9aK0NENnZib0xSQUpDQUFEYlUzNWdOQVp2cEF3MVlnZXN0dlhqNUxVekpFcjVORVpENyYjMTA7czlyZlhLclNjOU1pWFFCN0wzVGE0d0tSajBrUndQNXNEbGNBTW1qamorSjlyWXliWURVQTFNUWMyRkJqbzdiYVp0VzNmMm5RMXFaYyYjMTA7ZkJPQzJOV1gzNnZ0OHhiN3V5eHVSOHBEcjhWZzgwM0NYWTZmV21hM1lQUTFBRzIxN3hkcjJZVDc2Ti9WOXFIYVhtbnJBMEM5ak1DRyYjMTA7ZWhxM2srckxzY1pzN1ViTC8zang4dHVzaUhQakxzMDNHSlRGajdrSHc5L2NOZmR2Q0Y2WFJuWXlJQ0VRL0RyUnZzbzE2c1dqUkhXaSYjMTA7QURZQVRiZnRRL3R4a3ZDK0NRQThnUUEycEczY2xzV1BSUnFwWDVpNllQZXVvUFBLZEFhemU2N1ZLRzZ6R1B5R0lVa1p3TjRQbmZ0SCYjMTA7cHQ4cEUzek9wWWRNQURUWXRnOERJRTRLZ1dzQWFKVUFOcVJwM0k1aTQvYVYxR2hjV1d3d0lsUEFtcUdyeXNCcFZYZUZhVVJTdlNseSYjMTA7VkR5OEFHcUsrYStucmh3QURiWHZIMXZIQmdCb2lEbXdZZnZHN2FUNkVrYjdDbDYzbzVRRXNMR1UwM0VjUFZCUGh1bDc5akk3WGdCNCYjMTA7cUgxdkhSc0F5SVFBTm16ZXNDMnJiVjU5KzA3anRsV2xKSUNOcFF3SUg4WlhyZStTWXZUMTVTTlRsQUJBaWpiK05MYnZBWUJNQ0dERCYjMTA7MHh1MW8ycWJWZDkrS2N4MW5ZUDlPSVVMOEVSaEdwSHF5MDNDWFI0OThlZFBNWFBGQUtpNW5UOHB6SGNOQU5rUndJYjFHN1M3c1ZINyYjMTA7ZDdVZFNwR3NIRWdDMkZqS1VkamxIWFhucVBxeW4yRGZVNWNLR0xBYlNWQjdXei9jdzR5OEJvQU1XY1FSMW12UWpvdmJ4Y2xNRlpLbiYjMTA7ME9Fd055NXNabGFrRzIxMmRFLzUzTmJWaTVmZkxsd3FZTUJDSFdnQVJYMXQvVEFGMXJTaGo3dXN0bm04cHZPNGZiL0cxYjN1ZW90eiYjMTA7bUJRQzhBRDBsQUEyUE53UUxLc3ZFeDJHN0pXU0FEWVdIdjU4VExTdm5WQnZWaDN3MmRMUGpoSWRJd0FKMnJZcmRUUzNqb3Y2cGdhOCYjMTA7aXZleFUya1BBSnN4aFFqYzNiZ2Z4UVZjd2p6WGd0ZjVNdzgyYkNpTzl2cWNjSmZsSS8vZWhBQjJ2czRrQWRBRHh6WFZqNzlYOTlsUiYjMTA7dFIwTFhnUEE1b3pBaGhYeDlidlFpRFZkU0xlTWloK3ZZQUpQRXdMRXJ4THRxMXlxVHc4UzFLVTNPdjJEc0NzSlFGbHJxZTEvbExqZCYjMTA7SCtZclAzTHZBb0Iwak1DR3BjWnJ0YzJMMjduakJLK0JJVWs1d25uNXJaVXlzMk1qWHhiamhZZk5sYlhhSENYY1Y1amZlaVI0RFFCcCYjMTA7Q1dBemVHR0VZTFdGUnVaZlJYMXozd0ZrSy9VMEluSDlnS0JNc0RzQmJJQjBBV3dqc0grVktvQzlHSGw5TFVrQklDMEJiQVlyckRaZSYjMTA7YlNmVnQrZUZlYTRCVWdhS3k1V3ZHM3Z4OHBzQU5rQTZSbUQvM0I4WUZlbmV2RHlwN2xsenFRb0E2WmtEbTZFMlZzTklpMmxocXBBKyYjMTA7dVpBRXNKVVFLUDZZYUY5bG92bXZQN3NzMlpzWGFSNENqenJhbmlpWDAwTHdpZzYwY3d6YXFLL3VPWkdjQUZBUEFXd0dKWXk2cnI1TSYjMTA7cXUydDFPaVZTNjlyd25aQ0dhcnF5REIzNTM2QzNZWGdkWmxnUDBaZjUyK2VhRCtqbHRzSGsvanRmZmwybmFEZis5akdnRHBjSjh6diYjMTA7cFRtYS8xRW0ycytadGlnQTFFY0FtOEdJbzY3RHlBanpYUGZQVkJKQXNyTDBJY0Yrd3NqclNZTDlDR0FQUjl2ejhyNUxzSSs1eTBpTiYjMTA7VXVhdmNiWE5KR2xTMGhNQWFtUU9iSG92em5VZGdpQVdhZXluTVByYUs1dVFSc3FBOGRiVGh4ak4xZ256UlB2WmIrc0U0dHRaT2FVRiYjMTA7L0NMeDlEUkhDZk05QUVEdEJMRHB0ZmhLY0dqd3Y1SWF2UlRteHkwbEE2UVJBeVNYbVJ6T3pCWHBoSG5DZTNaYmk4dFoxSTZ1T0V1MCYjMTA7bi9DQThWaHlmdGVuZHFTNkRJRGVFc0NtbDhKMElkVVdPdFh2Q2dzMTl0V25GeSsvSFJtaENjbE5NemtPMDRkMFE4bzZ1SlNjOEtCNSYjMTA7d24yOWErT2hVZldaby9obXBNVWswNlpydUhjYnNBTkFid2xnMDdmR1cxbHRzOEowSVgwWHBnMFpTd2FveFdrbVpYenVVdVN2dWs0WCYjMTA7Q1hkWHRuUWFSaTNTRlJlSjl6ZHJLb2dkQTlmVDZ0dS9DNEhXbE9tNm1Dcnh0ZFFBb004RXNPbEw0MjBjQTlkZkNpTTYrdTZtTUVvUCYjMTA7YXBQSk5DSlRWNkpUcmhMdDUxVkw4L0lLWU5NVnFRUFk0UzNGOHpEbFhsMWxMNzRWR2VyMEVMak9NY2c2VDdTZnh0dW04WnFGL284SCYjMTA7QWdEMDNtK1NnSzRLSXptSzIxWFV3MmEwOVhDTVRSc0N0WnRXMjRjV1AzL21FblRLUE9GOU9NekxPMm40K010RSszRnZvbFpWK3llTSYjMTA7bUs1ajEySEt2ZU00a2pmVXZ4ZWJ2RjBSMithaldLWU80dGZjcC9LYko5clBZUWdvTjlWR0RXK2RGcmR2VEprcUVZQkJFTUNtVTJKaiYjMTA7TFd4SDFiWXZSUWJuck9vWW1CY1g2amRyOGJPdkVrOUxRVFA1SmRYYlR5R0lkdEpnRUdoY0pBcSt5N2MwSkN4Z1hjZUkyeEFJZlIyMyYjMTA7SWdiS3cxdHY2K1JyYnovRytxdG80QUZjWEtUK25lUUdZRWdFc01sV0RGWWZGRDlHY0JobHpVUVNRUDFDSUs2cWc2OWFxbmM5cE9xZSYjMTA7bElIYm5aZ0h5Z2JhR2VIMSt4T1hqNDZaRmMxTkdSSEtZOStEMHlucnI3QXc1bWxkRDdQaWZPWFR3aUFlQUFaSUFKc3N4RmNPRjRIcSYjMTA7ZzhKSURuNFZSbC9QSkFNMEpnUVIzN2J3dVZOSjN6bXA2K2JET0pWQmJWTkdMUVdDVXIxK2Z5WWIwR0RkL0VFeUpETlBYUitHUVRncCYjMTA7ZzlpeG56UXBMTlFJd0lBSllOT0sySEVzQzZPcldkOVVFdENSK20yMytIVlJ1UEtPZng4ay9NeFo4WE1RTVFUOWxqdlAxeHQwcGtPWiYjMTA7YXpxQWZiWGh2S3ZMNmJ1YS9xTWk3U0o5QnpHNHVucWN5K2xmRE9tQld3Z3lWMmtTRnY1TU9Tb3dqRENkaCtsRXFxL0pwaFNKN1kvdyYjMTA7bW4vcVFKRDVyMm1xdklWeVVkYzBJa05NejR2RTg0b3ZGc1o4WCsxN3NtVjlGZTV0NDBMZ0dnQ0taLy8zbjJmLzIvQnZ3MmpJVWhMeSYjMTA7aEFiWVlqc29MRGpDMC8wL2l6ZXVYZDVteFladk1WUnAvRXdLTnAvdURYZlduejNobk9aRnN3OFlQMVhITjM3Q2ZlVkxCN0xHZzBHTSYjMTA7cFVYUEZsYi9IZTZadTB2ZjF6RmllTGIwL2VyRGoza0ltSzF4UFVLZ3VjNEhIcGZ4T09jUEhkOEQ2Ym1Za215dnlldDh4L0VzWDg4MiYjMTA7cnU4djEzdmRoMFl4K0w5ODdNdjlnT1VIUitIN1ZBOHpsdWRnL2lWdkZqK1BucjE0cUozUWw3SVd6eVdzQmZPWE8rOC9mdC9tb1dHTiYjMTA7OSs4d0ZWZDQ0SG02enZHdHZKRjZWTFE3d09kcXRYd1Z2ejZvbTYyVGR4K3BPMWIvZmRoQTNiRk4yYnV2M2x1dFUwWUpyOS95dFpnLyYjMTA7ZEYyOHJRcjBtUkhZSkJkSEg1WkxtM25hMkRwd0lYZ05yV2g2R3BFaHpuODlMZHA1OEhINGhJREJzelhQbzg2OHNuOWZleUx4Nk1sTiYjMTA7elRwMGZkODk5ZnEyK01Cb2RRN21oMFlkdnk4ZVhpdWpMMlV0QktsT1cxeW5JRW03YnFsYzUzS3ZxeU52N01WNjhXMnNwOEo1MzlXZSYjMTA7M1MzeTZ5L3RyZVN2dTlMbjNacGw3enp6dXVPc1dHUGRoUllYejF5K0ZvZVBIT1B2Z3RoQVh3bGdzelVCYXhvZ2VBM3RtQmJOQmJCdiYjMTA7UWxCR2tuZFR5d3QvNW5EK0FnWTBiVngwNHkyVVZaZXh2NUJUZmQvVXZPTDZTQUN3b2VlU2dLY0tBZXZ3Nm1KNFhiamF3bXRML3kxdSYjMTA7WDJOOHEyRUcwQjl4YW9HcmhqNU84THI3SmdNOTc4OHVQUzNVejdNTzVyM3Z3ZXZjM3FxTDAwZjBvUngvVWpJQTZDc0JiQjRsWUUwRyYjMTA7UnBJQVdqUHIyZWRRa3hjdnYwMkw1aDU0NU1UREY5b3lMbTduK3UyQ0xJUFhTMDQ2bmhmV1hrTUNBTHBJQUpzN2hia093enhmQXRaayYjMTA7WWk4dUFBTTA3N1JubjBPOUpnTTczNnNZdUlmR3hXQndXZVFmeE00OWVMMFkwWDdXMGF6d2ZpbDRmYVprQU5CSEF0aDhGMWE5cnJaeCYjMTA7dFlWRllVTGpNc3lwRnhhcEVMQW1Gd0xZMEU2blBnU1c2dzZPZkxaUWEyL3l5N1FZVmdCbDRxclRjcGtMZzAzS0l0OGdkaGdaZk5DUiYjMTA7T241Y2RHZEUrOEtiS20zVlF3RDBuZ0QyZ0lVUnJVdlRndnhkYlIrTDJ4V2FkNlFPR1JwSkFtak5hY2YzVDdQR1JmZUNRSnU0TlBxYSYjMTA7SEN3RnNYT2F3aWZVQWYvdTByUVdjUzdzNDQ0Y2JramYzOVZCQUF5RkFQYkF4TG1zcDlVV0dtam5oV2xCNkk2UkpJRFdDR0N6dGhnRSYjMTA7S290K0I3SER1UjI1Mm1SVTdrSVFPN3l0OW1jR2h4TVdFeHpGTjNpNmxvN1RUTkx3SVdGS2xvTTQ3Y21xQzZVQmdENFN3QjZBT05KNiYjMTA7R3FjR0NYTlp2NjYyUFNsRHBxNkt1MGNRalNRTnROYWhyM01ha1V2VGgvUXl6K1ErcmNFMndqbVZNVkFQT1pXNzYyb0xJNGovVmR3RyYjMTA7a1pzdWYrRXoveFZHWFhlNVhvOXArQ25UdzNzZnAyUzVyLzV4UHdXZ2wzNlRCUDMwOWZ6NWJuSDdDbTlvZ0FsVzB5VWh2LzU3TVdvbiYjMTA7TENoYTNJNG8ycFUwMEtwUUpsL1hzTitwcE8ybkVNU09DL0NHdk5PWHQ3M0N5TWR4RE5CRHJtVnZIdnNCMzkrK0xHN2ZGaWhyNkJPRSYjMTA7QVBrc2x2SFRQajJNREVINE9NM2loMHdPS2F3dGNLenVBV0NvQkxCN0pnYXVqK05tTG11Nktyd3hFRWEzWGNUWEkyZVNCRnBYVndEYiYjMTA7OUNFOUZnTnA0VTJ3MEM2WmRMeHQ4cjdhVHJ3eFFNZks0T21pbm8zOWhJUGl4OENBVWZHME45eEM4UFE2ZnAzM1BaaGFuZDlpcmFCcCYjMTA7MGQ2QW9QQlc0dVFKYzEzUDVYb0Era2dBdTBkaW8zUldtTk9hN3R1Sm5ZVURTUUhabU5Xd3owdlRNQXhEREFTRmVqMEVzc2RGZDk0TyYjMTA7dTRuM294TjVsUjZVdyt0WWw4K2t4dHBwRnRKcVZOVmZrNkxaQVVKUERWd3ZxS2NBNkNWellQZEExYUFheFU3aGZ3dkJhL3BqdjhyWCYjMTA7WThrQTJYVGlRK0RqYytMZHpxVHNzUEpRdFlXQXpLajY1OHZpZHFHMHl3d1BOUVNPd3Z5M1lUcXIzVEFmcnVBMURMNyttaFMzbzlYZiYjMTA7MUZodjNjUzY1L2RRVDI0UXZBYUEzaklDdThQaWlPdVRvcDVYdWlFSG9iT2c4VTVYaEpGWnV3TTR4NU9FKzd2WThtOS83MENhemVXYiYjMTA7WDhXcEI0NlgyalBoalp1eStERzFRZmhhOTBqSG01aVA1bkVMMzE4a0RsYjM1ZnAyb2J3cGE5UmRiMTNIZG1tWTZtNFU2NnlqV0Y5dCYjMTA7OGxiSm9nNmFoUzJPOXU1aVdYMnM3T1ZlZDZ3N0xkUzB5UC9CdXpuU2dkNTY5bi8vZWZhL0RmLzJyTHJKbHBLd0hUMlpTeExXOGNZSSYjMTA7bENmWEQ2RnhmYmhoNSt5WkZBUXlxczhXd2V4bFQybC9MdWJzWGE3blpsSVd1dHRXdWNQdk9aVHJ1UEI0TUNydW5sdDhIamYxRUFBOCYjMTA7a1JIWTNXdnNoY2JRTkdHREQzSjNYQmlGRFRCSVMzUDJMcHRKR1NERCtrcmRCQUExTVFkMmg4VDVnTU5JSXNGcmhpVE1oVzB4UndDQSYjMTA7L2pDZEN3Q3dOaU93TytMcitmTXc1K2hiS2NGQWxZVTUzUUFBN3VzcmpJcTdwNjFZekN2L2s3Z29ZWnRTTGp5dmpRZ0FQU2VBM1kwRyYjMTA7NmJTd1VDUEROcE1FQUFEZit3Yi9TN0NiU1l2SG4zVDBkWnhxQ0FEb01WT0k1TjlBblJhQzF3emJWZFV4TWJJR0FLQWZUQTBIQUR5SiYjMTA7QUhiR0JLL2h1MU5KQUFEUUcyWENmVjFKVGdEb1B3SHNUTVVGR3dXdm9TaW1rZ0FBSUdsZm8yeng0NDhTN212dWFnSkEvd2xnNTltZyYjMTA7REsvVm5VZ0pNSDBJQUVBTldwbkdJeTQybVhJQlIvTmZBOEFBQ0dEbmFWcHRPNUlCMmx0Z0NBQ2d4OHFldE8wTWRBQ0FBUkRBenN6WCYjMTA7OCtlaFViY3ZKYUM0S2N4L0RRQ3c2aXpCUGw3RjBkQk45blBLSXYwVWlRTFlBREFBQXRnWnFScDF1OVdYWXlrQjM1MjhlUG5OYTZFQSYjMTA7QVBWb2JLQkFuQ0t4anM4VHdBYUFBUkRBemtzSVhwczZCRzVIWDVzSEhnRGdWL05FKzluL2V2NThGZ2ZSMUtiYWYramp6R3JvNTl5OCYjMTA7ZVBsdExqc0FRUC85SmdueVlQUTEvTVRvYXdDQXU4MFQ3dXN3N0svcWk0U0JBOU5VQWVIWXR6a3FidWU4M3FzcEhXYXlBZ0FNZ3dCMiYjMTA7UG95K2hsdEdYd01BM0c5V2JlOFM3bThuN3UvZDEvUG5sM0gvMThXUEFQSDFpNWZmN3B5cUkwNE5zaGpCWGNidnc5Y20xdlN4VmdvQSYjMTA7RElRQWRnYU12b2FmVEl5K0JnQzRXOVZPQ3ROKzFMWDcvZUpIOFBuZFVuOGx4NlFRd0FhQWdUQUhkaDdDNjNWR1gwTlJYRldkTXFPdiYjMTA7QVFBZTlubmc1Ly9KZ0FjQUdBNEI3RHdZZlEzS0FnREF1b1krK25naUN3REFjQWhndCt6citmT3lhR2FPT01qZDJZdVgzN3dLQ2dEdyYjMTA7dU5CbXVobm91WDlLdGRna0FOQU5BdGp0RzBzQ1VCWUFBTllWcDg4WTRyUnJJV2cva1FNQVlGZ0VzRnNVRjI5OExTV2dlRzhrRFFEQSYjMTA7azRRQTl0WEF6bm1zelFnQXd5T0EzWElEVEJMQTk0NlhoUnNCQUo0Z2pzSU9pOEVQWlNxUk42YWJBNEJoRXNCdWx3WHI0SFlralZYayYjMTA7QVFDZXFHcERYUlMzZzJMNkhzUU93ZXVwS3c0QXd5U0EzWks0ZU9PZWxHRGcvcXc2SXpQSkFBQ3dtVGdxT2ZRdCtqaWRTRGluM3dXdiYjMTA7QVdEWUJMRGJNNVlFREZ6b2tFd2tBd0RBZHVKSTdJTnErN01ucHhSR2xMOFA1MlN3QXdEd215Um9uc1ViNFR0VGh3Q1FhMXN0ck0xdyYjMTA7MFBUblZ2ZkZVdXF6UmY0SjdhcmptSDhueGUzODJEc2RPNDB3d0dGYWJTZGRhaWRXYVQ1cjZacXJNMkM5TWhydTZTRU9zMDZaQ1E4RSYjMTA7cnowOFkyRGxvNDExeVM2cWNyYjIxTW9DMk8wWVN3SUc3ZzhOQWdBeUZocnloNUtCTHFyYVdQUFEzNGlEWmtJUXV5enlEbVpmVmx0byYjMTA7RjA3alNQSXVVbDlBWm1JZE9DbHU0eTg3Ry94OStQSTU3S1BEZFJPc1k3Y0w5ekVCN0haWXZKRWgrMVExQUU0a0F3QkFmZUlJNW1uYyYjMTA7UWpCbVZOdytuRmxzVFhkWVE2QTZIRk1JQk0yTDI1RlhNMWNLU0MzV2Q2R3UyZmJCM2F1d1ZmdjdkMXh2QUdpSkFIYnpGV2xaV0x5UiYjMTA7NFFyQjY3RmtBQUJvVmh5WkhiYlRPL29vbytyTGFPbEhxLzllMXlKQS9jKy9qVndFV2pBdDByNTFNZzMxcENrd29UMEMyTTBiU3dJRyYjMTA7NnJQZ05RQkFmcGFDMndDZEZoL0lwWDY3SkFURHcxUk1VeWtNN1hndUNScXRTQzNleUZDZEZSN2VBQUFBVUsram12WmJTbHBvanhIWSYjMTA7elRMM05VTmsyaEFBQUFDYXNGdlRma2VTRnRvamdOMnNzU1JnWUFTdkdZVDRxcUs4M3F4cGZPVWRBQUFXRG1yYTc2NmtoZllJWURmayYjMTA7Ni9uemNXSHhSb2JsanhjdnY1MUlCZ1ppVkczdkpFT2pab1g1V2dFQStGbGRnZVo5U1F2dEVjQnV6bGdTTUJBM0liKy9lUG50VkZJQSYjMTA7QUFBQXNBMEI3QWJVdEFvdTVPaXkybzY4MWc4QUFBQkFDZ0xZelpoSUFnYmcvWXVYMytSMUFBQUFBSklSd0s3WjEvUG5ZZjZsMTFLQyYjMTA7SGpzcmJxY01tVXNLQUFBQUFGSVN3Szdmc1NTZ3A2NUMvamJYTlFBOU5LMjI2K0xYaGFCTUNRZmM1WDIxSGFneklBdlhOZTMzVE5MUyYjMTA7VS9ONEh5dFhmajZxdHIxY0RsSUF1MzRDMlBSTnVIRlBYN3o4TnBVVUFQUlJ2TWM5ZXArTGI5ck5xbTFmcXNHZzY0ekpPcjhYNjR6LyYjMTA7U2pHbzFVVzF2WklNc1BZOWJGNnNPZlZ4ZFI4YlYxOCt0bkdjQXRnMWloZDJSMHJRQTJHMGRSaHBIUUxYRjVJREFMNDMrSytyOXQ2MSYjMTA7bEFDZVVHZElDS2pYdktiOTZnZERmZVhyVVFMWTlacElBanJvS2xaSzgzaVRuZ2xhQXdBQTBBR3ptdmFyVHd3dEVzQ3VTUng5dlNjbCYjMTA7NkppckZ5Ky9qU1FEQUFBQVhST21RL2g2L3Z4VDllM3J4UDNrcWRTRjluaC9xVDdtdnFhTFpwSUFBQUNBRGd2eG1NdEUrN3FwdGlOSiYjMTA7Q3UwU3dLN0IxL1BuWldFeEg3cHBKZ2tBQUFEb3FqRGZmTFVkVk4rK3FiYXpEWGNUcHRiOHM5cEdwdFNFOXBsQ3BCNFRTVUJIelNRQiYjMTA7QUFBQVhSZW4vUWhiR0dnWUF0cTdhLzZkZmpGa1JnQTdzVGo2K25DRFB3MnZwZXhJUVZwMEUrWUxrd3dBQUFEMGlWSFUwRzBDMk9sTiYjMTA7dHZpN0Q1S1BGbTExUS85Ni9qdzh6ZDRWQkllTi9WR1ZuNU50ZHhJZnBBWmZFaDVibUVNd3pDVjRuYUx4SDQveGkwc09BQURBWTh5QiYjMTA7blZEVklSOFhtNDIrdmt3UnRJQXR6YmJJKzZQNDl5UEpDQnRMTWlva3ZQSll3MnVQMTNHL3FVYXVYTHZjQUFBQXJFTUFPNjNKaG44biYjMTA7ZUUwTzVwdjhVWnhMTEFTMUxGd0tyTVVybkFBQUFLeExBRHVScitmUHc2dlZleHY4NlZWY1dBRGFOdDhnMzQrTDI1SFg1bThIQUFBQSYjMTA7SURsellDY1FwMCtZYlBqbnAwdmZYeFdiQmNGaGEwK1pjaURPZHgzZUhIZ3Q1U0FabzVJQkFBQmdoUkhZYVV5THpVZWdMZ2V3NTVLUyYjMTA7bGx5dCs0dHh5cEJaSVhnTlNiMTQrVzFvODBKZnV1b0FBQUE4UmdCN1MxL1BuMCtLelJadVhGZ2VjVGVYb3JSa3ZrWmUzNjIyTU9yNiYjMTA7dkxoL3Z1dGRTUW1zeVVLT0FBQUFQTW9VSWx2NGV2NzhxUHJ5YnB0OXJJeTRDOEhzb1k1cS9WVGNqa2EvcU5Ka3ZwVEdvK3JMOG5ZUSYjMTA7TjFPdHBEVi9JSitIb1BTazJzYkY0MjhhSEJRL3YxVUFyT2RHRWdBQUFNQ3ZCTEEzRktkUm1HNjVtOVhYcDRjNC8ybElnL0dMbDkvdSYjMTA7UFBjWXpKN2ZrZjZqNGpaWUdoNGlsSVdBOXJibUQveGZTT08za2docU5jVDZQNnNSMkVzUFRNTzlaYmY0OGVDMGlQL2UzM0RYTnl2WCYjMTA7ZDdaMHphK2ZzdjVBeG0yaTNaaHVpelJiL0h0aG16ZlZybGJ1VWIxTHY1cmJxb3M4dlp5djk5Wk04K3VZem1HYkRYQ2FvMjNMUTdsUyYjMTA7SnZhZlVGZk00alc0dUsrTjNMTTZJbnkvazdpT21DK2xvYnpiN1BVdVY2NXh1ZlRmNjlSQkR6bGI2YjhzMTFYejVZRlFIVTY3UlgxZCYjMTA7YnBCbWx6RTlsdXZ2aTY2bkM0L2U2NWZ6eStMZmRaVzNSVDE3M2VYNzB5UHQvbTNhcnZlMSsrZXhqdEp1M1lJQTl1YVZ4R3lMaHRhZCYjMTA7bmZlUW1hdDkzeVRZYjFlRUcyeTVTYU55S2JCOXVuUk54c1Z0c0ZVdysra2V1dm1Va2dlb3FkNTUxZks5ZlBFUWRKdmd5V04yVmhyQiYjMTA7aHl2SHNiZ2Z6aFpiN3NHVzJPaGZUcnM2Nzd0N0svdS9LLzJ1WW41YXBOOGdGMFNOMTZWY3VqWTdDZEw4MWRMK1F6NmRocTJ1UEZwOSYjMTA7eGppMjU1b1d6bW02eFhFdjBqeHMrd25xaXNPbGZkL0U5dTYwS3gzZkdJUXJHNmhmSDYwajR2R29JL3B4UHlnZXVwOHUzUlBPNHJVTyYjMTA7Z2R2VHpOTnZOOVo1WmFJMjBYTDk4MnFsRElRME9WMDNUZUpVcWU4U25lcnFnNmFONitQWWZqdHBvOTFhSGRkeEJubG11YndkdGxUZSYjMTA7M3EyVXQ0dWMyN0N4bkpVTnBkczY3WDczcEEwSllHL1c0WjBsYW9nZDNQR3pjRU1ad2pRaUd3ZXY3eElMZmJpaEhNZEc4NkloSUppOSYjMTA7bnVzbjVsT0FybmEwajR2OEhuYnV4KzF0UE01UFJXYkJxcVZPOW5HRzk5WkZBT3ZWVWtjOXRLZE8rajdxTEY2WG8zaHREaHZJcHgvQyYjMTA7RnZQb2NRMGQxVkVENTNHWDJRWnBmN0JVbjlRWm9OMkpmWVBYMVdlR1FNRWt4MEQyVXZ1Nzd2UlFSK1J4THgzSExjZSsxdUdpSG9uQiYjMTA7b3MveG5ucWFXUnBPR3V6Mzd5M1ZJeUgvVDJQK3YyNjRES2FvajNkYnVrK29YeDh1YjRzMmJDaHZwOXM4RkU2WWJvczBlNVZabXJrbiYjMTA7YlVnQSsra04xVm5DU3VPdS9VeUwvZ2V3dzBpU283cHVtTEZSUDF1cDhJTnlwWU0wU3Z6UjgrTCtKOHQzL2Q5UHI5MVV4L20vRnEvSiYjMTA7L0lHTzhiN1NEN1h6NUwxZkhjVnRaUk9zaXZlQms0NjFUZlppUitwdERMUk8rdFloV0hvWU0yNnBNeHZ5dzFIb0hPWSt3ckdtRHZGeCYjMTA7UysyakVDVDRVaDNEbnpGZlgyZVNIcE9pVzROR2x1dUliQjhLdUpjbUU0SkVyMktRYU5KbVlHMXBiYUczTGVmL01JSTJEUHc2emlIUSYjMTA7eUwzNXBZeHRzUDBPbHJlUXowTkE5cVNGZEpzVStUNWdjMC9hZ2dEMitvVWdkZkQ2bi8wdUJ6SGpOQ0puUmIrZktoNDEyWkZjS3Z3cSYjMTA7Z2Z2VDZMN3JZZlExTkdPSTgzTTJFclJQL0FwczAxb05Wb1dPYmV4b2QzbHFzOFhEZ1BkVitrMTYwQjdONllGQ3lCZC9WY2YwWmdnQiYjMTA7a013Q3RhR2pXNGJnUmx0QjdLWFgrTHZlWjFuVXMySFU0Tmg4MmZmV081T2krMnZpaExMN2NSSGNhanBBdExTR1ZpN0J5SjJZSHVPWSYjMTA7SG5PNVBhc3lkOXJ4K2pXVXR3OUwrZXVpZ1hRcll4bnI4bHY0aTN0U1hXKzZkZHB6U2JCMlFaalYxSUVyNy9qWnBNZkorYWVuU2RtNSYjMTA7ZVdMK0JFaWgxZ1paYVB4WFcyZ3N2K3RCV29XZ3dTeDJhQnJwT0ZWYjZBQjhLUHF6THNlN2NFNU5wV0ZOMXlXMEQwT0FJYmZSajRzQSYjMTA7U0cvN0FiRXUrVmprTi9YUWFVdHBNbzU5b3o0TnVBbWpCdWN4eU1pUGE3MFl4TlduQmQxRE9mNFM2OVNtMHpISGtiU2hIRi9FdVpYSiYjMTA7bzh6TmUxUy83c2MyN0xqbWRBdmwrVXZSbnlsa1g4ZHk2WjYwUkFCN3ZRYmFseG83Y09YcUQyS0E5MU1Qay9QN2ExdHkxYjNPV3ZwYyYjMTA7Q3poQyt6eGRUM3Z2M3MyNG83aHRCMkMzb2JUcjQzUm00WnltSGN6UDVkTERtRndmS0p6RTZRVjZWWTlVMjBuc0IrUmFseHcyR1lSYiYjMTA7Nmh0OUxQcTU2SHc0cC9NK1A1QjU0clhPT2VpYXdydjRzTGFwZE56SlBPLy9KZTluVStiNlZyOHVSdnNmMVpSdTA2SWZBMVpXN2NXMiYjMTA7dnlCMkpJRDljRUU0aVEyME9yMjZwOEVmWHR1OTdGbVNUcjBDOGFBYzAwWmxDYzBZNGh6WXRkUjVQUTFlTHpReDRuSmE5SHZ0ZzFleCYjMTA7ZmRlVnR1aWt5RHVBdXR3NW5mYW9EMURHZXJrTG8wN2ZOZlh3WUNsNDNYY2ZoejRhdGNlQnRGV3Y2d3hpeHpiSnRFUHArTEhwaDJJTSYjMTA7cXN4TlV3ZGo0M1IzZlY1REx1UUhRZXhJQVB1ZUcwMjFuVGJZYUQxZS9VRU05SVpHNGsyUGt2WlU3bnBRV3dHcytUM2xZRFNBUml2USYjMTA7a2hybndnc2RyejRIWUE5alk3Mk85azlJdTFjRHlINXZseFo0enJVdE91cmdGRGlIdWFmckU4cEIxMTVEbmpTUUx1SGFEaUY0dlREdCYjMTA7MjFzRlQra0xGOTBLdW03cmRWMzMxWTYyU2Q0SllyZFM1azRIVU9iQytaMGtUTGNRMVAwd2dDelNxMEVDMnhEQXZyc1F6QnJ1d0kzdiYjMTA7ZWlVNGR1NURZN0VQUWV5ckppYnU3N2g1WnAvcktSL1F0WHQ0dUdlK0hjQ3BUbEpQSlJMYlArOEdsRjBtR2VmamNDMUNtNm1MRDJLTyYjMTA7dTVvaGxnYXdkTEVjdks0ejJMb1UwQnlTSVFjTUprVy9Id1RmZDE4ZEpTNDNCeDF1azRSNjBKell6WmE1dllHYzYySENxV3BPQnBSSCYjMTA7OWoxWUtvcmYxQlUvM1dUR3NSQTAvZVFyZkY1b0dQN3lPblVJK3NhYjMybkhHeEpHWHo5dW50bnhDR0REK2tLdzZmY3QvMzZJVXFmWiYjMTA7VUlJTml4RXM0NFQ3UEJsWTN2cytXamkzaGFWN01FVkRtS0psdDROVHh2Vmg2cUdqR3N0eGVEQ3hWd3pQOTBCTGxaK0hjbThaMG9QZyYjMTA7dSs2cjRUcVhDZmM1NlhpYTdCYzBVZVlPQmxqbWpyZHRzOGU2Nm5CbzZSYW13UnZ5dEx3QzJNVS9vd3BDZzYrdHVYTStWNWx3ZnQ5LyYjMTA7eHY4N2lQTnpkWFYrbnhNNTdXR2hFMTFkNHpZKytyN0FXZW1xd05ybE56UWtabExpNmZWZXdudjV1QmhXZ09Vb1ZhQndvSjJBWUp4aCYjMTA7dWUzREZBMUhSZmNlSnIzdFNYNU8zdDZPL2FUallyZ214YkJHWWs4R2ZLMlRQZGlNbzdsZkZmQzRJZGF2WVRUeHdaWnY2QTh4M1hiaSYjMTA7ZVErMm5oNzhGQ0pMVTRhMEdSaGVxMUZVRmZEUU1QM1V3V1ErZXloQXowK3VXdmpNKzRJZlJtQURPZ0I1TjJLUHBOMVd2QjVkajFJUyYjMTA7dEJZUTJLMWh2OGZGc05kRTJVdjR1bnNYK3NXSEF5OUhFL2RWR2l4em82TGZDeERXMGdhTDk3cWhQaUFhRDduTURIb0VkbHlzb2UxSiYjMTA7MzhQYzBFK1pYdU00RnZZdU5TUW5CZXVhRnhtTUlJdzNCUXM0QWwzcWROZjlxbXRZajJJeFVtVDJ5TytXOGV0QnpYVnBpbGN3aDl3SiYjMTA7Mk1seEdwRWVLQ1ZCYXc2SzlHOFZDTVFscUdzN2RKNURGMFpoanhJTXZocExTdVNUMnRvS1RRMUFDSU1MMTZrTDZtN3ZMOXNiY3R0MSYjMTA7a0FIc3BWVmVjM2pDUEhuS0w0ZFhoY084TjBWM0ZwZzUwekY4a2xrTCtYSitUeVVNTVBRT3dGbHhHN1NZYmRxWmphTnJqb3A2NXBEZCYjMTA7VHpDTlNCT2RwOHZpOW0yZjFmYkFSZno1S0c2ckhadlFYcXY3d1VRZEFiK2gyeWFmejVhdXkvSm80a1BKdW5aQUlGbCtydXFYdGdiTiYjMTA7TE9xTXU0eUs1Z2Q3cEhqZHZRdmFlQ3RsK2VId3FpYnVBZmZkRnljZExEZGRkTGIwL1hYTUM0L1ZZZGNyZjlmbGU4UzRvVFNlMzlIbiYjMTA7bnkzZE4xYnIyRkZSZjFCMm0ydFcxbFFYbmNidFlwTjJmNXlTN3lEV3BYWG15YU9odGwwSEY4Q09ONVJwSmplVnF3MFhCZW5TQ3VtVCYjMTA7Z3Fkb3ZHRjhUK1VzZ0ExMFNlcUdiR2pFSHFWNEFCdnIyUERnK2FTbXhhTExZcnVGa3N1YXJza2krSCs2VFlBOURqb29ZMlA5ZFUxNSYjMTA7cDIvcmRLd0cvNW9jR2ZSUEoyNlQ4aFAvWnJiTy9tUEhQNmRYcjFkSGFyVVJmQnZWMEVtdXkwMjgxclBZL3IxNGFsMFJIeENPWWprTyYjMTA7K2J6T3QwbU9paDR2dU54QTBQVXkzcXZDOVo0L05UZ1U3d1VIUzllN3p1TTkycklQV3paMDJSWjEvZlVqZVhOM3FXL1gxa09CVDdGTiYjMTA7Y0xIdDJoM3hRVks1Wm40SnZtUmE1c0x4MWZFdzdpYW05WFROaDI2elIrcllvM2kvM2E4aERUWWRTWHlRT0wyK3Q5TVQ1TTNGUGUwayYjMTA7cHQxSlRmZWxzaGlvd1FTd1l5VTJMZko2VFhheVljRzRhR214dnlkM1hvMitmckpjR3NZamx3TG8wUDA5WmFNNmRBakxPbGI0RGcrdCYjMTA7cStOZGpDNUsxZkV1aSswQzJLbmJSY21DL3pITnJ1UDVuVlpwTjZtaE03RGI0ZXgvV2Z3SUFNNGY2Nmd1ZGVqTDJCbnQ3S0tuY2VIciYjMTA7dGpwd1Y4VlMwTFZZSXlBVEF4V0xVVmwxOWtWU3Q5L3FTT05RUjRRM1VrNFRCQXZteGUxRGc5bFNIajh1NnBtM2U5dWdadTdxS2s4aCYjMTA7Y0RuWmRrcU9sY1d5cC9GNmorTTFxZVB0cG0ybUVha3JMUmVCeWROdDc3RXh1TGE0SDVSRi9VSHRlWk54Z2VYOGtuSGNwSTU4OGpuYyYjMTA7MzFPMVlWY0dZZFF4RUhUVGU5Wit3akpWMXZGMlRVeTdvMWhQcFY2Z2U3OFlxRUVFc0RNYmRmMVA0M2ZEMGRmTG5aYmNNKzVZYU9YcCYjMTA7RlYwbU45bE5uMnFXcmlMUThRN0F1STdnOVZJOWZ4SGJKYWxHQkcwOENxV0dBR0J0SFlHVnprQm9QNlVhZWR1MTE0NDNIdG0rMUtFUCYjMTA7MnlSZS83Q3Z2WnJLNWF6b2p4QzBEZzlTcHB2azcvZzNZWnZXUENvcjJRT1plSnlwODBadER3aVg4bmpJMjZjeGI2ZnNLNldZc21sSSYjMTA7OTlLa0R6UHZ1ZDdUZUsxUGl2UnZZeXpxeDZlV203cEdPTCt2em5lUytINDZqL1hhb3J3ZngvNjc2VSs2V2VZK1ZkZDFYR041TzQzdCYjMTA7aGxuQ1BETGFvSXlsSEgwOXJudHFxRmhQaFcrVEJyR0hPZy8yOHo2ZlhMaUJ4SnZhWHhsV3hOc3VrcEY3NCtsOWdzVXZodW9zZzg4eSYjMTA7aFFqUUZTbnJxL2ROekhFYUc1eWZFdTB1cHprRXk0YlNiOXp3dmJKdElSRDB2dHIrVloxN1NPTnBpaUJhekllaC9GeXFSdTRWUnJQOSYjMTA7dTBxck1CcnpPRVgrRHUzamFnc1BzZjZvNFhoVEJzNVMxdysxQnE5WDBuZ3h4Y0JWeHZlYjNLVE1PNHVIbWJNR3J2VjF2Q2Q4eXVSYSYjMTA7cDg0aklTMWZwZ3hlUDFBdmhmakVLTjV2YmxUL25XcS9udFVadkY2cFcxTk9MVFhhNEc5MkU2YlphUk1YT2c1Y1RkMXVIUTJ4MFBRMiYjMTA7Z0IxSE44Mkx2S1lNYWJ5d3RPU3k3cHRzeitVd2pZZ243MEJYbEFuMzFlUmN5TW51azNIa1ZOdU4zMDhOTDNDV012MXlEVXFGNE51YiYjMTA7S2wzRHFNOUpIUU1EWWpBeHRKa0ZLMzRJYWZGbmNmdkE0S2l1Tm51MTMxRGZmTTQ0SFZMUE1YclU1T2psK0ZuampPODNPZldiVTUvWCYjMTA7cElVRkw0K0x0QThzY25rYmRkeGtXc1lIQXBQWVB2aGNVRmVaQzBIWWxHKzRqQnZNSTdNaTNRT2pVVU4vYzVkcEMzVlVTcU1obHAzbiYjMTA7ZmF3TU1oNTFuYktDeVRuRGpndTJjZEZ5R1NwZEFxQkRVZ1ZaUGpjY1hKa1g2VWEramxwT3UyRFM1RVdQSGFoVXdZcmM1c0VPbzNSKyYjMTA7ajZOK3B3M2x4ZFFQYjdyWXNWcU1kRitNdHA1M3NFT2JZOTM2UFZEUXhwdVpzWjQ0eXpSTitucXRyK0xEbWFhdjlYWGkrOUNtYnplbCYjMTA7clBzK3RUWG9MYVpuYnhjdDdWbVorOXhDL2RybVlNeFVaZXlpNFRKMVVlVHhrSzNUZWhYQXpuelU5VUtxcVRWeVhYam5UUXRQM1B1bSYjMTA7N2ZUYmRRbUFEa24xc0xxTnhuaXF6eXczL0x0VXI0eGZ0alJ0V0IvZlp2czlUaE15YS9oenA1bDJNSnNTUmhxTzRrajNwaDlrNVRySyYjMTA7TVdYbitLVEY4MGo1MlgxdEk0LzZjSzNqQTc5a2I1TnMrSFpPeXJTY2FPTDFWc3I2OWJTRnN0YjU5bGRMTWF1VTZUYkltRTF2QXRoeCYjMTA7UVorY1IxMHZPbmlUQk9kYVpucCtuNW9ZS2RSM0RWZW1zNXB2cUFCMTN2dFQzZy9iYU1qT1dreTdsSjNzdGpveXZYdGczdGFDUEluZiYjMTA7Q09paWl4WVg1OHMxRUpDcVQzWFo1cm80TWRDU0txaDUyTlA4ZjlDai9OeDJnQ2hWSGptem5sU3Y3ZmFnektWb000d0dkdDFuc3Y1MiYjMTA7T2gvQURwM1hhZ3NkbU5lWkgrcjN1ZDh5YkdRa3E4Q2FXRGhnUU5wY25Nb0liR0J3MmhpSmtUQlkyZllvc2JZYTVEcjNPbFo5a04yRCYjMTA7bU1RUEIzTUkwSjhtVEpzK3RwTlRuZE5WQmtIWGxQbXQ3TWw1a0o5VWVldXl4WWV2S1Q2M3JWa0ZianFjWm5XMDR6dmp0NjRlZUh5bCYjMTA7Sjd5aTFKVW40ZU9FTi9TanpNN3RzdWpwb2lZdGQyYmF5dHRHWUFORDZ3QzArZER3S2tFRGZyZWh2M25vbmtYM1hVdUM1b1dIWjFXLyYjMTA7cHU5dDJoeU9JZFZncDlCT252WHNHcVdhVGlxSGRHbnRHQkkvK0prVmtIZjkybWE4WWgyWGQ3UnJMdUxQNWkzZDcyY0o3L2Q3UTh6dyYjMTA7blF4Z3g1dkRsdzRkOHB0VTh3VEZWMzRQTTZzWXloYWYvUFZWYUxTODdlQnhqMXc2Z0NlWnQ5UUlUZld3OHFiRk5zQkZ3clFRTExoTiYjMTA7ZzNlU2dTTHRZSVpjQXRnMGN6OXJWYmdmVmYzbE1McHlKN055OE5UemtHZjdiZFNETXRkVzIyOTZSNXZ0UWp4cUdMbzZBcnZzMExHKyYjMTA7U1R3djlEaWpjeE84N241RCs2NXJ0ODBEa3Izd2tNV2NiVUJEVW8waW5yVmMzMi83WVBxZzVlTnZxNE4vL1lTUkxBK054QkVvb0cxbiYjMTA7UlY0RFZIWVRsdE1jMm9RcHkzaXZIbmoxZE5Sd3FwR2h1eTJWbTdPQ3Z0dnJXWmw3eU0wZGRmREdiYTk0VHhGckdLaXVCckNuUmY0aiYjMTA7Uk1JcndVYzFQRDBkWjNKK1ljWDBzZUIxYlozeWVjTFJBMDBISHNJVU55ZXVJdENBUGt4NWxPSSt1c205WWplajQ5L0d2Kzg0QmlOeCYjMTA7SUE5WkxBejZ4SWRkVGRXZDFHZGV0UE5BS0ZXYnhQMkxMZ2d6RE14Vzg2NjNCNmhUSndQWU1iajN2c2czaUIyTzdTUjE1Nms2NTNHUiYjMTA7eDF3M255elkySWh3UTNqVjVBZkdLV3EyVlJZQzJFQzNETEd6bUtxajNXcEhKZFVVYlVBdDlVTk9kV3NJcHUrN3RMWFd4N05NRG1XZSYjMTA7V1RubzFIMlYydnZidXhubTlVM0t1M3hLNHpxN1lraFZZQ2JWbDArWkhWWTRubitGWTZzaGVCMHF1a2tHNS9oRzhMclhqWmRSaHh0NyYjMTA7QUYzc0xPb0FBTG5wNHlqamEybFRXOXUvcjNZa0FUVkkxbGMyYlNkRDAra2xyMk1ndGUxWDA4STBENHZBOWJqR1N1UzRhSGYwZFRqUCYjMTA7bDRubjgrWmhzNDRlOTE2aWtkd0FqK2xESUNGSlVDWHhpQjZBRlByNGdLNXZBelZHOGwxMmJSSVB0Z0h1OEx6ckovRGk1YmZRaUdoNiYjMTA7SkhhWTMvclBhdnQzOWZtN05RZXVRNmMwbkdPYjA2V0Vod1FIWGhOcFBHL1BPdHp3S2wxQm9BRmVCLytocmFES1hOSUQ5N2gyTElOeCYjMTA7NVZxYkF4dWdUcy83Y0JKeEpQYnZSWDByOW9ZYmNnaVN2eWx1UjFxUHF1MjR3WGtYcHkwbWJ6anYwdXNwcmFuN0RZTjVUUTB2MDRnQSYjMTA7RElQMkFkQUZCdUs0RndEUVliLzE1VVRpYU5VeWpsWWVGN2NqUURjWm1YVVpiOEFYaTYzTjRHMTFQaWRGZXlQTTNwZ3lwSFd6T3E5LyYjMTA7alhsYkFCc2diK3BwNEQ2bUpJTGJ2dmh1NnJXdElKRXpTZEJzWGFEdDNMN2YrblpDY1pxTDQ2V01kaEFiWWFQaTF6bSt3dTh1YmtnWCYjMTA7dWQyY3FtTWZWMS9ldHZEUlliN3IwcFFoV2VqcU5WQzVBMTN5cGJybkR1MmNMVTRGM01mMFRQQ2pUek9URE5BL2NkMnVVU3pucXpIRCYjMTA7QTIzbC9Qelc5eFBzYWhBMkJ0NVBXdmpvOENUdnlKUG1iSFMxd2FTeUJ3QUFBRm9WZzlWbGNSdVlEdHVoVk9tZTN5UkJsb1ZyOGFTMyYjMTA7NlNEZ24yRnViMWNnSDJHS2p5by9oRG5ZOTZRR0FBQkFyODBsUWErVmtxQVpYOCtmSDhYMERsL0ZVM3BBQUR1L1F0Wkc4RHBNR1RKdSYjMTA7Y0ZGS25pYmtoOWRkek11bW9RRUFBRmhQbSt0dlFkZkZrZFpoVUthZ2RROEpZT2RWMk5vSVhvZEZLOGNDalZrTDErWjFCNC9iQWtBQSYjMTA7QU1ObFNrTGtPNkIyTVhBOUtib1pOMkZOenlWQk5nVnVYSDA1TDVvTlhuOHVMTmJZQmJPT0hyY0FOZ0RBY09sajBEaDlXeGlPcitmUCYjMTA7ZDZzdHJCMzNkeUY0M1hzQzJIa1V1bkgxNVdQREh4dm11N1pZWTNjYVlUYzE3UHFzNWtNL2NQVUFBQURXamcyVVVnSFdLaXNoM2hCaSYjMTA7SlcrbHhqQUlZTGRmNk1aRjg4SHJOeFpyN0p3dXprOXVCRFlBd0hBWnpFQWIvV3Y1RHZwZnpzZkY3WnZxNXJrZUVBSHNkZ3RkQ1BDZCYjMTA7TlBpUllSVHZ5eGN2djAybGZ1Zk1kRm9BQU9nUWd4bVE3NENrbGdhQjdraU5ZUkhBYnRlNHdVSVhndGZtdSs2dW1jWWpBQTl3ZndjQSYjMTA7b0xmaUd4WW5VbUtZZnBNRXJXb3F3Q2Q0M1hIVnRadFhsZlZWVWY4ck1yTnFlNWRvWC91dUhFQWovclNtQlFCQTlsTDJ0d2Nsem1BdyYjMTA7TGRvYmViMjZobGhvZXo4MXh1YmFiMEVBdS84RXIvc2p6SU5kOXdJRkFpREFFSDJxdG5sSGovMml1c2VmdW9RQTBDcjlLS2hYV01ldCYjMTA7N2tGeVlkRGdMUFlMdm44Tmd3bFQ3ZnpyK1hNQjdDMElZUGViNEhXL2hBcTAxZ0IyeUN0VnBYcVo2c1lRWHZHUi80QU9tRloxMVd5QSYjMTA7YlFSekJ3SjNTZFlXaEk2N2VPTHZ2a3J3bVNQSkRqK0xvNitQYTd6blRhdnROR1d3bXZUTWdkMnV1cC9TSGdzZTlzcXNvYytaSnR5WCYjMTA7ZWJBQnV0OHBCL1JSWUhCYW1wNXJKT1ZadytIQXpuZGNwQjk0RWFZRStiMHE1MkhRM1luZ2RmNEVzTnRWNXl1L1oxVUJuRXJpM2pXZyYjMTA7cmhyNHFKVDVwblRsQUhwTlJ4dm9nZ05KNEY0QWROWTQ4ZjdldkhqNXJSemdHNWlkSm9EZG92aUU1N0ttM1Z1WnRaOW1EZVRMRUNqLyYjMTA7cERFTGRNQ2xKR2lkZWg2NHo2NWpHWXc5MXpyWm13dWw3QVEvZkQxL0h0cWFLYWUxK3QxZ3oyNFN3RzVmWGFPd3ZScmNUN09HUG1lUyYjMTA7YUQ4amx3em9RR2NSZ1BUNk9PcTViMzJzdVh5WFhkN3dzQVYrVmliYzF4OUdYWGVYQUhiN2FnbGdtNytudDFKV3RoZVA1Si9QQ1Q3aiYjMTA7MENVREJ0WXdCdWk2UGo0YzNKVTJkOUpudk45VlM1OXJBZFYrUy9ZUUxJNU1Ib0pVRDZXdXdselhzbUIzL1NZSjJoVVdXYXdxbm5CeiYjMTA7M0pNYXJKRmY1Z256eTJNTjhGQzViNzJTZG5XOEJ4WVRCY2l5QTVYaUlXT1dJeXpqYXZWM0hkdW8rUFh0b0puUk9QQkwvZkFxd1g1eSYjMTA7R2trcUtGaC92WnZMZkxLalJQdVoxL3o3WFVoTDB2Zm5yNnZybXpLdnp6T3NDdzd1cWY5LytYbVZIcE1HMjVxbmNtQzNDV0RuSVJTayYjMTA7dDVLQk5ZWEd6T3NHYnE2elJNSHlVV0ZLRzZBZXFZS3dRNVJxRkdHckFhcnFQaFh5UUlyQWxFQUJwSmRGMERnKzBNcXQ3cVErb3pZKyYjMTA7TkE0MFNyVzdJL2NsY2xibDlYRnhPK0J0Wjh0ZFRSb3Mwd0xZSFdjS2tUeTRPWkZyZnBrazJJZFYzNEc2REdyQnBQQ3FhQmlWZGNjMiYjMTA7YnZFMTByYnJlTUZyeUxkdXplVVY5NVQxVks4R1pTUWU1WnZMdmZTZ3hYS1FhdHFSSTlWUXIxMzFvTXlGdW4ybm9jOUtOVnVCUVhVZCYjMTA7WndSMkhnMkgwNFJQYSttL0ppdmU4SlJ5MnllcnBVc0daSzd0VWNTek80N25xWUhaMzR1bnZVYWE2bDZ5MDJLNmpXUmR5TDZ0ZVZDMCYjMTA7LzRxN3dSVE5hTDFPanFQdGQxb3NCeUd2cHdpMjdZV0gweTllZnB2S1ZyMlVLcDlvQnoxQm1MNUZLblNicUdrK1Brc0MxcXg0UTJQcSYjMTA7cHNGS2Z0dFhiWkoyR3VJSXhERGFjRkp0eHdJWU1HaXpSUHRwK3pYM3c1V3RpZU5KT2NLeWJDbmQxUCtRdjRPZUhVTWZSL0JkSnRwUCYjMTA7bWNHNXBEeUdUZTZUczRTZlAwazgvVTBYeXk3NVhxTVVuMzB6cElzVnAxMWhDd0xZL2V1RUk3K2t0dTFLdlRzcGdzd3hhQjNPKys5cSYjMTA7KzFodDc2cnRRL2gzbUFQVkRRSFlzbzdwZEVkdGc5ZkE1NWtHRElEdTFTY1B5V0VxaEtPRWFkUEhFWHlwem1rdmc0RWxLZlBicGlPdyYjMTA7VTlsTDBBL2JwRDBVcGlZTDUvR3FJUGUrL0g2TER6bDJXeXBqWGUxbmpJdmJHQVpiRU1ET3A4TnNRbm1hdnVtVmF6YlV3NDNscW9uUCYjMTA7dXEreWo0Mm9VT0hmdDFoYkdLMzRNZnllUURZTVJ4L203bXdyY0I0V204bzBZSkQ5TllPQlNEVXlici9Ob0daOFF5VFZsQkpuUGIzVyYjMTA7S1lOSWJUK3dTUG41MXkyblpmQzZ5c1BUSm9LVTFXY2N4Y0ZDWDRwMGN3NlRMbS9sVnVZNk4vQ2pyVFozZUhPOEVMeE9RZ0M3ZmVPbCYjMTA7anVTVjVHQk5zNFkvYjl1bi8wKytXY1NuLzdOWTJhL2JpQXEvOXpHT3lDNWxFeGlFVkVHV3R1cU1ObDhQVHZYYWVGc0JLcTgzUTMxUyYjMTA7QnVLTzIrNXJKZExYK1ZQbmZialdjUkJMc25VWjRpQ2VUZjRtOWJRSXIwTjVqSU42ZGhPbjJVRzFuY1RCUW44Vjl3OFdJdC82OWFpRiYjMTA7c2pZcVdsd0RwU3R0L1ZCZXd3T280dmJOY1JJUXdHN2ZjcVBLS0d4cWExRGQ0U2tOb0dsVE40dWxpdjdMRm8yb01DTDdTMU1qRm9CZSYjMTA7ZEFKZXRSU0VMVnRNdTNuQ2ZVMmE3aFFVNlY1dnRpbzkxRnN1eG0zVXIzRXd3K3RNMDZTdjF6cE1JM0xjd3JYZVRYd2YybWEwL2F5RyYjMTA7VS93K1NLZmEvaHNHK01TMWdJN2lnSi95a2JRNVdQeGVYRDlvRXZjUkhzaWNWOXZid29qckxwZTVOdHF2NDQ2bWUyUEhIYS9KTFBFOSYjMTA7YVBCK2t3U3QrejQvY0J5QlBZczNFRmkzWWJYTlUvSzFGd2tMOC8xVitmVFRGaFh3OHZ4Y29WRjdWME9yamlmKzRYaEQ0MjVTbmNPSiYjMTA7TEFPOTdRU2txaitPaStaSGo2VVlPWE96UmRxbENnS0gxNXhQRWoxZ1hmZGFKV0ZWZXJpM2ZralczeWx1QitvMDl0WkViSGRPRSs5MiYjMTA7MXNjTEhhYmpxdElyNVM2L0IwZ2J2QjhFb1oyL2wwbitueFgxemg5OXVOcnVTWHo5cUwvTWhiNzFUWkZ1RlBPMGFHaEFSS3hiVTdYQiYjMTA7MXExVHd4dURLUlk0RHpHSm95cjlUMnRPbzVBK2s2S2JvOVN6cHFiTHd5aDFvNmpyaTFIUlRDTTZWT0JQK1BWdEsvcmoyQmg4dDlUdyYjMTA7T3J5ckVaWll1SEY4aUNNTmxBdFFGejdrYlpQMVJCdzFsYUpCZnBGQjJuM2ZYeFBwRis5ZHFWN0h2RkdFb0pINklRUU9UaHVheTNjVSYjMTA7anovcHFOTEU2eTdrNWpMaHZuYWF1aC9FNnowdDBvOXkzQ2FBN2ExcW1xNWpEMk01YU1LMGFENHdtM0tnd2JTdXVpbmNlK0lVcUI4SyYjMTA7d2V0YUNHQzNhS25nbExGUmRKMnc4V0RhQkRlOWRVelc3VWpFSjVYYnpOUCtybWozOWJRUUpEK3Z6dmQvTVpoOUV1ZVNLMlVsNkxUVSYjMTA7STd5YUNzSWV0TjNKclNFWXN3aGFITldZYnVGaDZGOFo1eC9vaFpyVzV3bWpVaS9xV25BN1RrTTNpZVY2UC9IdUwzdCt5ZXU0SDV6SCYjMTA7NlNwMmE3cmVZVXFNY0sxZjU1UWVzZXhjcWtWb3VNeTlydk1oNFZKd051WGJCUmN0cEZYeUIyd3hiYWJWdDM4WDVwR3ZsU2xFMnJWNyYjMTA7VCtIY2x6U3NFM2hJOExwWXlHdGhMcld6bFJ2SjlkTDNGN0VoRm9SZ1N4K211ZmxwMUhkTXg4dkYrUzZkdDlmS3lVWnNhSTJLbjEvQiYjMTA7M2kxK2ZTVzdqb1pUR05ueHYrSjJ0T3JGSTQzSzhPL3JwbDRkRHZWVGRXeXBYaTFjYnRnZVYvdWUxblF0eDhYdDY4NnBSbWRzMDdBLyYjMTA7UzV4bndqbjlGZThySWYxbVMvZVFiZkorQ0lxSGRFdjlJSFNlWUIrN0NmUEdybnVQUGtGR2VTalVMYW1EZzRzRnR5ZXhYUmsrWTc3cCYjMTA7UFNQV0QyRXJZejFSMTZpM2FjL3o0S3ltTm40WXdQS3V1azZmNDJkY2JQcndOSTZzWDc3V2RRMk11ZHoydmhYdjhSOVZiYTIzblhjeiYjMTA7TDNPcGhlQnlhQmVIdW5XNjdVQ0ZtSDZMOGxiSGc2SjF5MW5xUHNYaUFkdjdVRlkzdldmR0FSdmpvdDRwZzdRWmx6ejd2Lzg4KzkrbSYjMTA7SFo0cXNVclY0bFlaTHFUZmwrVzBqSVVneGNpaTMzdittaHUzK2FXT0VTYjNCVGhDM2d3TngvTUJKZkZWdkxITzR0ZUxodWZ6MnpSZiYjMTA7aE9QZEtDQlZuZDh6SmF0LzE3VUZqYllSd2hzVk5YVzhyMkluZE91NVBPTTkvNmltVHZlYlRZUHRjVVR6aDRicTB1VUhwSTlaNUorNiYjMTA7OC93ZmQ2MlJFQjh5ak9JL1IwdmZCd2RGYzYrR0xqOWd2bDd1eEZYSFBWbmorbzZLbnhjdFdpMlhUZFVwVnlzZDFlVzhNRnUwV1dNNSYjMTA7S2U4NTN0Mml1VUVlYXgzdkkybmYrVHlVc0YreXJwc25CQ3FhdmgrK2ZPZytFQVB5UmNldjkzWFI3R3Z2Nnk2VWVORHdjZjJ4N2RvNSYjMTA7TWZBM0w3bzlqVURLT1pyZnIzUFBXak50TzNWZmUrUmM1a1g5YnlpZnJkWUZqeGd0YmJVZTI3cjl6bGllL2x2am9menpnSzI0WXhCYiYjMTA7L1B5RDRzZkFvVExqUHRscXZYb2R6Mm5TMFhJMVgvcjMzQWpzZHQzVnVaOUpGcDZncVFCMnFMQk9RMENxcXR5dWl1R3NWTDBYdC90RyYjMTA7YTU5MElhQU5BekF0NmdsZ2gvTC9ZYVhzWDYvUkVWZzBjcHZxZUcvVGRqZ3Q2ZzlnLzFLWFp1Uyt0QnRuY3J5cng3QTh5bWVkWUVEbyYjMTA7a0x6TDREejJWdG9PaC9kY2g3Smp4L3VRenVlaE1IMWM0b1hHSHJPVGFUMXh1VVo3NzEwbXg3cE5uUkh1QjY5YlBOWmNiRDI5VjF5ayYjMTA7N3lTamZQRlVuNHNmYXhmbHBtdjN0Y2Z5MnR1R3l0bXJ6SzdqMlJQTDArY2F6K0hWOHI0N3ZpanE0VDNuTitsQnVUb3pCM1ptbVN6aCYjMTA7UE5qbXdCNkdKb09uaDNGa2xJVkpiaDhhaEFaK2VQVm9tdm5yYWRCN01iQncyVkRaUDR3TndYY1BiSytLSDFNVjFSMzR1ZHJtVmVmNCYjMTA7dDU4SG1uVnVQSVNFUjUxSWdzR2tnV3Q5K3diWlBHRjZYblV3RFVKN2Fpd3JLSE0xTzYzNTkra2hBZXgyM1RkeC9LekdmZE12VFhlOCYjMTA7SjBYLzV3QjhxaERJbnErOE9ncm9CRFJsSnUwYTZ6eUJ1blY0cnVwYUR5RTM4WUhlMmNDdjl5Umhlb2FCYWVPT25YOElYcGZXWW1pcyYjMTA7ek0wSFhPWTJDV0RmZFB5Y1EvbjZRODdmbkFCMnUvNFp0Ymt5Z25NbWFWaFQwd0hzTUpxd2xPeS9DQ01zd3dJMTh6aEtIV2krRXpBdCYjMTA7dWpuU2FWc25DZEp1TnRBTzFGVEpnVWZyaHhESWVqL2dKSmc0MzhFNFM3MkdWTnpmbngwNWY4RnJaYTZ4dlBiVU54MWl2dXp5QTlYdiYjMTA7NWF0b1BuN1RLd0xZN1JvdGZiODhZbHFtNWlrVmVkTUJtdzlTL2w1aHZxWXZZYkc5dUJBQzBLenhBRHZicWRvTWt3R20zVXlSZ2JWMCYjMTA7ZFNxRWJWME9aZlQxVXQ4aTFJdC9EalNmajJ0SzA3Qlk4cWZNei8xVGRad0hndGV0bGJtaFRlVjJzc1hmZGZGZUZLNnZoME1KQ0dDMyYjMTA7YSsrZVNtdyswRVlpbTVsTGd1eUVrZXAvaDhWYnpJOE5qWGNDUGczb2xDZUowKzVQYVFmY1VUOTBjU3FFYmQwVXc1MEhlRExBdnVnZiYjMTA7Q2VlK3Zxc01qVE51bi93Umo0LzJqSXZ1VDQreHJyTk5Id3gyOUY0VUhnNGRMUVd2QmJHM0lJRGRrcS9uengrYm8zcmJFVldsVkI2TSYjMTA7bVNUSVZsaFZPa3dyY2l3cG9ER2h2RjBPNER6L3JPRlZaMmtIM0ZjL2hETHpaa0NuUEI3cUlxOHgwSEpVRENlZ0ZnSk1KdzJrNjdqSSYjMTA7YS83YmNMOS8yY1M1czNhWjY3dWIyRTdmOWw3VWxRRVhiMVlmRGxrOGZEc0MyTzE1YkZTbWpNMjZQTVhMVzVnZis0UDVzYUhSVGtCWiYjMTA7OURzUWV4bUR6WFdRZHNCOTlldTBHTWFiR2lIb2NEcndhMzBSN3dkOUQySi9hbkwwY1F3Vy82dG9kOTJKY0UzL2lGT0dpRG5rVStabSYjMTA7UmY4ZkVoNm55SE1kbUpZbnZNSHljbWhUVURWQkFMczlCNC84ZXlhSldKT0dSemNzNXNjK05UODIxTjRKNkhNUWU3RUlUTjFwZHlidCYjMTA7Z0hzQ0IzME5zb1RBM3UrQ0R2OWM2MFVRdTYvVGlmelp4dFFaWWFxU2FndnArcks0RGNJMTlaRGdNcGJka1ZIWDJaYTVVUGY4dStqbiYjMTA7ZzZNM0tldldqS2ZsQ1E5NVBSeXFpUUIyZTNZZitmZEY0djNUWDNOSjBDbXZpdHY1c1NmbXg0WmFPd0hYWVhSUjBhL1Jnbjgyc2NoUyYjMTA7VEx2UXVYNHY3WUE3Nm9ocGNSdDg2OU5Ed3ZEUTdzRDBRcjljNjlBbjdkdTlOQVRrZjIvN2JaeVF0aUVJVjIyaFAvQjd2T2VHZkpncSYjMTA7ZUJuMkV4YVBDOU9XL0N2ZUE2ZnVnOW1YdWZEMlI5bWorclcyQjRPWlRjdHp1YWhYMWloalozTDZabjZUQkswcEgrczhmajEvSG02dSYjMTA7ZXh2dWYxOFM5MStWUjhKY1dWNkY3cVozNGRxRitiR045SUZhT3dLaG5JVXlGa1liSFhiME5FSkRkOUowWUtYNnZFbE11Nm0wQTFicSYjMTA7aCsrQnphcU9DQUdFeVJaOUZuVkUvdGY2T3JaWlQrTzE3dXI5NENhMkJVNXlDK0xHL0RkYjZlY3Q0Z1dqdUQwbW5OUEYwdjVRdjdidCYjMTA7ZmQzbExieE5VS1hUTExaVjI0aUJYY1Y3aVA1OEF3U3cyN1BPVGVpaXc1VVZOWW1qZG84NmZqUGpWcGdmKzJOYzVQRllZeE5xN1FpVSYjMTA7Y1FIbDQxaUg3blNnb3gyQ0JkTTI2NGJ3cW5OTXUxRzg3M1FoN1lKUGJhY2RES1IrRFozMmFSeFVNUzV1M3pUTFhSYjFhd2V2OVd6cCYjMTA7WGpxT1d4ZnVCMkVVOG1uWEFrenlKa3YxNjZLOGRlSGhVUWpvaHVOdTdFRlJTd0gveTNpT1V6bTFPUUxZN1ZtblVGMTBwQkZJQTJMdyYjMTA7NExoRGpVWFdGNTRXaC9teC83UzRHSS9jRXh6cjlnM2NjYXhUUTdDbGpGc3VieTJkeGJRN3phM2pHZ1BaaTdRTGFSYlM3eUNqemxUbyYjMTA7U0lRMG15VmFmSzB2Y3hkZUYvbS9xanBmK2I1THh6dUVQTFJ1SFJISzNXa2NhRkZtV3I4dTZvaFpUZnNmeXJXK2lIMlM0eGpNWHR4UCYjMTA7RHpMcG8xekc4amVMOTFOVFp2UkwxKzVyS2NyY3RMZ05aSTlXNnRjY0JyUGRMT3JXV0wrMmR1OWJTcWN5dGxsVEQ3cFl0RFduVzU3biYjMTA7cVhLMVdkdjgyZi85NTluL05yMUp4L2tSZWFKWW9MNnMvUGg5ZUZWMzVmZENnZnRyaTQvNjNaUGJ6dWVWeFUwcTVBVVBNNFloM0RpTyYjMTA7dG1sc3g5ZW9OZ29xVlovN3pDVmd3UGZtM2RnQkh4VS8zcFJLMlNGZmJoak9scjVlZDNteGx4akFHTVcwV3FSaEVYK1dxbk4xR1J2WCYjMTA7UlF4TUxGNlZubHNvQjlRUkszVkViK3JYanZaZEZ2Mlhvdmg1MnN4VUR6ekRDTTk1L0g2K3ZPbjdKcjJXSVRieEx0SHVmb2wxa09RYSYjMTA7TGVyVDVicDFOM0Y1dXlsK1BKQzlYbW1EWGVUK2dDamVmOHFsOXYyNjdmckZQV1VXejNYbVlWajdqTUJ1eDJqTjM1dExxa0hlaUhJYyYjMTA7RlVoelFtTmpGbDZCMHVHQzVpeDFldGNhRmJFME4rVkQreHBLMmwzRXhyMjBBMUxVRWFNSCtrc1hnZ2haWCt0NTdNUE8xcnpXeXc4MCYjMTA7Vm5uNEFBK1h0MFdBZGQzeTlsRGQyc3Z5dG5UL3VTczlsZ1ArMnFBZElJRGRqdEc2aGEwcVZOdDhUcmx1WlVaNzRvMWtFYlEyeXBvZyYjMTA7UExnSVFld2pOMUxJdGtHc2JFbzdvSjQ2WWw0WXlET1VhMzJ0dnpvSUhqcXBXM05NRHcvSU9rWUF1eDNsRTM0M3ZDSzExOERuMEpDbCYjMTA7dVFFWFFXc0xNWEtYOEdwVG1CZjdqY1VoQUFDQUJwVUo5eVZRQ0d4TkFMc2RveWY4N3J6WVBNQjVHRWIzeGlkdHRHaGxnWk5ES2NJVCYjMTA7ZkF5djIxZmxlQ3dwQUFBZys3NWZlVWYvLzY0WXdFOVRHQ3ozNHd2cldRSDhSQUM3K1p0WnVFRTlKU0E5TDdZTGVKNVVuM2xhL0ZqWSYjMTA7WXQ2Qk5McnZCbDkwNkJ6Q2RWNEVyRk92ZnN2d3ZGNU1OV1BlUndBQXlOcVhIcHpEZ2NzSTVFUUFPNThid2V5ZW44KzMvTHhYeGRLOCYjMTA7eW5GTzdiUDRlYk8ybnVyR1lGeFovRmdSZHY4SmY3djROcHpIWWtYWTA3WXU2TkxrLzR1VmJjdkM0b3VrRng1a1hjUjVzYjJHQndBQSYjMTA7ZWJyc2NuOHc5dFZURHNBeUFBZlltZ0IyODhvTWp1RXdidTlpTVBoenRaM1dQYzl1ZkpWcU1TcDVQK0Y1dkszMkhSb0prN29DMmZIWSYjMTA7RjBIcTVXQzErYXRwVXNodllYSEhjWnNQYlFBQWdIdDFQV0JicHR5WndUZEFDZ0xZelh2cXF6aE5WUGJmUjJsL1BYOStVbjJkVnR0SiYjMTA7aW1rNmxrWlpMNExXZFU2akVRTGlmMVdmZVJQVGJGYkVhVlBpL3o4NDljalNLT3BSM0pZRDFhYi9JQ2M3TWEvL1VlWHBFOGtCQUFDOSYjMTA7VXhiM3Y2VmR0eVBKRCtSR0FMdWRHOUZUTlBuME5nVEczaGEzSTVvL1ZWK25UNTFpSkFhQ3d6bU9pM1plbXdybnNCaVp2WHBzY2g5OSYjMTA7OGlHVU40czdBZ0JBNzdReUIzVWNoUFlxNFM3UFhFb2dCUkc5Wm04R1hSck4rN3JhdmxUSFBJMDNzUWZQSzR6ZXJyWjU5Yy96YXZ0USYjMTA7bUFNYUdpbW5WYm56U2g0QUFQUkxlRU42dDRYUG5TVGVuL212Z1NRRXNKdFYzdmNmYlMybXVJWVF5UDY3dW5uK2RDTzdJMmdkUm02YiYjMTA7RHhxYXR4K24vd0VBQU5xWGFvREpjWk1ISGRiWmlmMy9ITk1DR0RnQjdHYU5PM3pzWWNISHVhQTFaT2x0WEdnVUFBQm9WNnBSeDZFUCYjMTA7M3NoODFERjRYY2VnbUpuc0FLUWdnTjJRT0ExSDE2ZlZDTUZxUVd2STA3U2wxd3dCQUlBZjVnbjNGUlp2cjIwa2R1Zy9oR2xEcTI4LyYjMTA7RnZWTWQyb0VOcENFQUhaekpnLzgzNlhrQWJZVUhpeE5KUU1BQUxRcWRkRDJRM3diK2ppdXE3V1ZHTFEraW9Ici94YnBwdzFadUh6eCYjMTA7OHBzNXNJRWtmcE1FOVl1akloKzZLVHhVcVpkU0VGalRxNlplTXdRQUFINzE0dVczaTZwTm5ucTNZYkRLaC9CTnRlK2I0alpJUGk5KyYjMTA7SHUwZGZyWWNXd2pCN3NVYm1ydngzNk9pdVRlcXAzSURrSW9BZGpPMmVVcHFTZ0RncVExRkl4MEFBS0E5WjlWMldOTytkK0srRHpOUCYjMTA7ZzFQWkFFakZGQ0o1bUQzd2Y2WGtBWjdZb0RWUFBRQUF0R2Zvd2R2UEwxNSttOHNHUUNwR1lHY21UamNTcGdBbzQ5Y2RxUUlBQUFDZCYjMTA7RVFMWUh3WjgvaWV5QUpDU0FIWWVydVBLd2lGZ2ZTZzVBQUFBb0p2QzZPT3FqLytwcUcrQnhKeUYwZGN6dVFCSVNRQzdHWS9OUi90QiYjMTA7RWdFQUFFQnZUSXJoQmJEREFwTmpseDVJelJ6WU5ZdFRnaHhJQ1FBQUFCaUdPQWYwKzRHZDlsRjEzaGFVQjVJekFyc0dYOCtmajRvZiYjMTA7ODFpL2tpSUFBQUF3TEM5ZWZwdkUrTUFRUm1LL01YVUlVQmNCN0VTcW0xSVlaVjBXdDYvTDdFc1JBQUFBR0xZWEw3K052NTUvZi9tOSYjMTA7cjBIczc5T0dWT2Q1Nm1vRGRSSEEza0lNV28rTDI5SFdlMUlFQUFBQVdCYUQyUFBxMjNjOU83V3o0alo0UFhlVmdUb0pZRCtSb0RVQSYjMTA7QUFEd0ZIRTZrVEJLK2FUYURqdCtPbGZWTnFuT2FlcktBazBRd0Y3RDBwelc0OEwwSUFBQUFNQVR2WGo1N2FMNlVzYUJjY2ZGYlp4aCYjMTA7cHlPSEg2WUtDUUg0cWJtdWdhWUpZTjlEMEJvQUlNdTJXVmx0dS9mOFdnZ01uT3BZQTZocmN4WUQyZU9ZNW92MERrSHQzRVptaHlsQyYjMTA7d25XK01NYzEwS1puLy9lZlovL2J0Q0tyS3JDeXB6ZnJjQ01SdEFhRzJKaCtKaFdBRE50b0I3RUR2ZTRvdGZmaFZXMHBCNkN1N2VoMSYjMTA7R0JXM0FlM2QrTFdJWDFPUDFyNnN0dXY0L1d6cDYzVU1zZ05rb2ZNQjdLcHlYK2NZUXVVL1g2cjBkKy80Ly9CelFXdGcwQVN3Z1V3NyYjMTA7ODZFZDk5UzFSLzVsVVNrQWRXM1ByMW41aEYrZnUxWkFWM1ZpQ3BHcVVoNFhQMTVqMm5IWkFBQUcwemtQZ3d3MldUZzd0QjFQcENDQSYjMTA7dXJhdlRPTUNERVcyQWV3NG5VZFkxR0JjQ0ZvREFBelY3b1ovTjVKMEFPcGFBTG92dXdEMjBtcThyMTBlQUlEQkt6Zjh1d05KQjZDdSYjMTA7QmFEN3NnbGd4N21iSmtWK3ErNEN3R1AzcnkrWkgyYXQ2MVpVYVREcndQMzdkNi9aQWdBQWRFL3JBV3lCYXdBQUFBQUE3bEpiQUR0TyYjMTA7QlRJdWZuMmxTS0FhQUFBQUFJQkhKUTFneDRVWHd5ckU0MnJibDd3QUFHeHBWbTN2TnZpN0Mwa0hvSzRGb1B1MkRtQUxXZ01BVUtONSYjMTA7dzM4SG9LNVYxd0tRa2VkYi9PM282L256OExUMTcycjdVQWhlQXdDUTJJdVgzK2JWbDdNTi92UlU2Z0dvYXdIb3ZtMUdZTy9GRFFDRyYjMTA7TEhUNDNsZmJidkhydWc4TDRmL3FldEI3VTl6Lyt1NTEvTDk1eldrd0xXNWZQVDZJNTNxWDhIODdOWDMrWlR6WHUxekUvNXZMcXAxMiYjMTA7SFBQWi9wcGw0amdHWXdCUTF3TFFjYy8rN3ovUC9pY1pBQWlxVHNnenFkQ3NyK2ZQUThEM3Y0LzgybGwxYmNvZXA4SEZHcDNsLzFlbCYjMTA7d2JVY00vanlFaDZFaExKdzM0T1NXYlZkeUNzQTZsb0ErdU0zU1FBQTdRbWR2NnFqT1BSa3VGNG5uZVFXcW53UUhuWllNQXhBWFF2QSYjMTA7Z0FoZ0F3QUFBSjN5OWZ6NXFQb3lldWgzWHJ6OE5wTlNBTjBuZ0EwQUFBQjB6YmphM2ozeU82YkhBK2lCNTVJQUFBQUFBSUFjQ1dBRCYjMTA7QUFBQUFKQWxBV3dBQUFBQUFMSWtnQTBBQUFBQVFKWUVzQUVBQUFBQXlKSUFOZ0FBQUFBQVdSTEFCZ0FBQUFBZ1N3TFlBQUFBQUFCayYjMTA7U1FBYkFBQUFBSUFzQ1dBREFBQUFBSkFsQVd3QUFBQUFBTElrZ0EwQUFBQUFRSllFc0FFQUFBQUF5Tkp2a2dBQW9EdStuajh2NDdlaiYjMTA7dU4xbEhyZml4Y3R2TTZtR2N2TlB1UWwycSsxZ3pUKzlycmFMNWJKVmxhbTVGSDFTMm8rVzZxdTc2cXhaRG5YVjBuRXVLemZZMVQvMSYjMTA7NzRKNkdBQzJJNEFOQUF4Q0RFNk1hOXA5Q0dwTmF6amVFR1FyNDlldzdXeXduL0RscXJnTkVvWHR0RHJXNjU1ZWh4QW9taVE0eGtrbSYjMTA7MmJhdWZEWE80ZVJTWEt1VmM5dGRLUy9oWFBkcnlNUGh5MDF4RzlnTzJ6eVVyZXA4TGhvcVEyV3hXV0IxSGJOdGc2M3hPaHpGclZ5aiYjMTA7M25xM2xLNXZVdWY1bFdOYnpodUxORHhzNEpvdHZyMksrV1dSYnk3cUNtNTNvYTZOeHprdTduOFkrNWh5amYzWFdwOC9sZzQxbDlkVyYjMTA7eW5qRzk1V3BCNHpRWDlzRXNNK3F5cUdVaEFCNXFScVJzeVk2WTlCQm9ZUDFycVo5bjRXT1U0THlleEE3Z2FHTmxUTHd0bGR0citQMiYjMTA7c2ZxY3o5WFhrNVpHQmRaNUhZSkpnbjI4eXlUUEpzbFhEYWQvbzljcUJrNk9Zcm5aYi9EWWQrSzk5bkRwV0VKUSs3UzRmVWgwV3VObiYjMTA7bHpWZnc5a1cxMklTNjVsdDhtZktOdEZUZytsMTI0dmJjcjRKWHo0djVaM3JqcFQxU2FMOWpHdHV0OVpkMzAxYUxxK05sZkVPM0ZmQyYjMTA7ZWMwMWQ2R2ZqTUFHQUdoUkRMQ0VEdnh4Y1J2WWFNS3JzRldmSFFLa3gwMk5ISVdFNVdaVWJCOHNUVzBuSHMvcjZ2akNTTnRwY2Z1ZyYjMTA7Nk5xMWFPMllqb3IyZzlacjE4a2h2MVRIZmpLRWZBTUFUMkVSUndDQUZvUUFTN1ZOcTIvL1cyMGZpdWFDMTh2Q3FMZFpmSVVidWxCdSYjMTA7ZG1PQTcrOGlyK0QxcWxDZXc0akVpNVg1dC90MlBjS0R0NHNpcitEMVpPbVlkanFXcERzeDM4ejduRzhBNEtrRXNBRUFHclFVdU00bCYjMTA7QUJjQ0poOEZzZWxBMlFsVDdNeXE3VzJIRGpzRXNyL0VvSHVmcnNWdW5MTHNRNUZSa0RqV3JlK0s3Z1d1NzZxWHY2aVhBZUNXQURZQSYjMTA7LzUrOXU3MktHOGthT0Y1KytRNFowQk1CRUFFOUVkQVRBWElFYmtmZ2RnVExSR0FSd2JZakdIVUNDMFN3SW9JSHZxODlqNjY1UFpZeCYjMTA7cUs3VWtycXE5UCtkbzRObkVOMVNxVlNsdXFvWEFDUFFnRS91d3UwNVNoQWJJZDgvMitEMWNhU244Rjd2LzFTdVJla0NXMjlEMC9jaSYjMTA7c2F3djVmS0NFZ0FBTUhYTWdRMEFBS1pDNWhQZDFQNWI1cDRlSlJpbXcreFhMdnhlZ1RML2F2SG05RnM1NG5VNENUQmRmbmVQaTFMTiYjMTA7bnZ6LytaUC9iblBzdDNydWRhVjdmc0dwN2Y4ZllnN2NHejIvN2ZFZlByUFBjLy9mZXI4ODZIZlVGY2J6ZnVuK21lbG43SkpQNnNkViYjMTA7dFB6YmJYckljZXd5MVkvTWpYMWYzVi9MSGE5aHVjZXlMS3QrZkE2dDROTGo2aU40dlduSXQxM3lqTmcxMEovTFBkQmhUdXdZeWxyMyYjMTA7VEhreFduNXU2YzUxV3lBdzE3ejB0Rnc5MVA5WGQ5WXhyOWF2K1V0cldoUzE4bU9vZXVXNWMzcXBUckhteCtmcWxKc245ZU8yVG1FOSYjMTA7RHlCaEJMQUJBTUFrNkVLRmM4dSsyc093M3RqS1hJZmdpSDVPdmtOamZGTnJtSldHaHFlYzMweC9kZ20wSGVqeHp2ZDVIWjVKZjZmbiYjMTA7bGJrUmVuMVd4MWkwdk00U2tQeVhaN2QxOWJtckFPNERhZlJ2ejY5b2NZNitmUHloK3V5aHBzbFl1L2FCdDF2OXU2THQ5VFNraGVUZiYjMTA7RTgzSDV5My9YSHBpcjNjNXB1cHZjNzFQcmNkYWQ5bTFQTks1cFQvdWtIU1dBR0RaOGJPNzVMMHY3akhnSmRmaVpzaEZFM1d4WHNreiYjMTA7QzgwM2JhNkI1UDN0UzlDa3lsbzl6bVdMZE94U04zOXl6WUhkclVIeWdMNFFManVVdDc3enlyVXNDT0g1cWw2dnJJM242RXZySWVzVSYjMTA7QUJFaWdBMEFBUEI4dzcvZTBKcTMvWXlPd1o1ZGcyNUY3ZnRuMnJpWHJVMHcrMHpPdCsrZzN5N3AvK1NjemdMTU1oSkU4QVd3NVRxcyYjMTA7WXJ3Zk5QaTJNS1RCRU44dGFkWW0yUGRudFYwT09ZcEE3dzNaTGpWdGxycFpnK3pTby9aa3lJRHBrMk90cCtkOXgrc2cxN2ZOUzd3NyYjMTA7VGFOQ3k3Tnl3UHladFVqN083MFAxMk9rZiswNjNOZlNZeHVJdld4Um5pMkhLRDlpSzJ1NzFNMGh2RGpzNE5Kd3YyVkRsYnNqMUNtKyYjMTA7ZS9ZaDFuTURNQnptd0FZQUFPaTNZVGJUeGMyc3dXc0pXbitvdHQrcWhyWUV0Vlo5Qkk4bFlLU2ZOWE9QUGREYXlMaVNyZEphZ2xOWCYjMTA7bnQyT0lwN0xWdkpEVTdEaGFvaGdZQzA0YkwyUDVCNWFEandGemkvWFhnTmtNME1lK0NjdnREaXZFTXEwM05tRDE1SUd2MHU1VTIyWiYjMTA7OUJBZDRYb3NXaHpiaVI3VC9aN0xET250TzYvKytjNzRKd2ZNaFQycE9rVUM5UnZQYm1mNm9pSFdPcVhKZXQvM0tJRHdFTUFHQUFEbyYjMTA7aVFZWXBPSHA2N2ttdllza21IS3FRZXVoZTR5dTVMdjBleTB1TkhnSXU3eUhSbnVvbGoyY2U5ZnZ0ZlNzdmRMN3FOeFhBbWtnVzY3diYjMTA7dTU3U05KUXlUYTZ0SlhndFBkOS8wNkIxTWZKaG5odnpTQlphVUV5bmdMRG1HUUxZMUNsUHJTSjhUcG9abnBHWU9nVEFMd2hnQXdBQSYjMTA7OU5Nb2t3Ylh2NTEvV0t6MGh0NzJUaHh0d2FIYWZLaldJUGFjcTlvcWZRdjNPRDFCay9QWWVzenBFUDJtS1dodWh3aFl0dWg5dmRIQSYjMTA7Y1NqNUlIZTJFUThIT293KzVHc3Y1K0lMWHNzODBxUDNmSCtTUDMwZVhNQXZERFRQV0hydm4xRFNUcXBPeVEzMTlTTENsODIrZTNFeiYjMTA7NXJNUmdIZ1F3QVlBQU5pZDlDWjYzL0Q3ZXVCNnRhOWVnTm9vWEJsM24zTlpXN1AwR3NzaU82ZXNoM1B1UW5xYitucGZQN2dBZTZYcSYjMTA7aUllTjhSeURaQWhleTh1YVA2cHpYZXl6NTd0N25MckZlMTlHTUIyQnBWdytkcUJPK2RsQmduVkt6bVVIOEJ3QzJBQUFBTVBhZStDNiYjMTA7VHFZcmNmNmV3b0xlZnUxSnc5dlhZeTZMNVdTMFoxOVRFRlBPZFQzUTExdUN1OHVBQTVPVzYzd2VZdTlKN1JuZWROMmwxN1ZNMmJJTyYjMTA7NEhCbmhuM1dvZDlyK2hMZzFuQnRLSmVuVjZkNHk4R0k2aFFwV3hwSHFXblBjd0Q0QlFGc0FBQ0FZV3lIMXE4Q0RMS3REUHVjY1FuYiYjMTA7MGV2c0M1YkZ0SmhqNXZuOWtBdHQrZVkxdmdzNTBLRUJTY3UwRVBQQURsM3k1dWNYZmljdkxONXByK3Y3aU83TFdLWWpzQVRhV1p0ZyYjMTA7V25WS3FjOFN2anBsSHNrcCtlcVVuS3NPNENVRXNBRUFBUG9sdlp0L0QyQm9mUk5UajhUWTVtc09SRXJUaUN4N09OZldqTUdZZFFUcCYjMTA7bHh2Mm1RZDJ6TWNONWRvOHdKY0d2aDdKR3hjUFM2Q2RNcGs2cFV0WnZYYzZlb0RGR3dGMFJnQWJBQUNnSDkvbnVYNXorbTAyeEtKMiYjMTA7ZmRMZWs1YkF6b3pMMmpwdEpRamxtd29nK01VY2pZczNEdFd6ZFc3WUo0OGdMMGc1Y05mRHVlNmJsQlVuZ2Zaa1RxbEhzcVZYTzJYeSYjMTA7OU9vVVN6a1N3d0xCdmlEN2w0QmYrZ01JQUFGc0FBQ0EzVW5qOGtRWGI0dEZ3V1ViVEFxOXNQZlMrMXI1ZXRYZUpUUXRST2dMODExViYjMTA7YVQyUGFjcVFXSVgrNGhQVUtWM3BYUCsrcWJOeUxqT0FKZ1N3QVFBQWRsZEcySFBJRWdCa3Z0VnVKR2daN1dLTzJwT3ZhUTdxb1JmYSYjMTA7OGdXd2k0anlRbUZJNzFBWDVwUDVyak51WjJEdmNrT2RFdkkwSWhLOGJscTg4UzZRUldFQkJJd0FOZ0FBd0RSWmVsU2VrRXp0SmJDWSYjMTA7WStiNWZUN3c5eDk1Zm44VFVYYUljVjdqN1dLTk9YY3pFRTJkY2xEVktWbWdwN0RQRVQwQUVrRUFHd0FBWUpxWUVtQllNUS81em5vNCYjMTA7dDA2TUN6aEdFOERXa1JtK25wTWh2U2lTWTUwVHZBYWlyRk9DNjRXdEkweDhVeVZSM2dEd2Vrc1NBQUFBVEkvTUlWdzFMRW1JWWRQMyYjMTA7MXROdy83N3dWa2pUejJpdjhLWWUwSnNBanZjbXN1d2d4M3ZXOFB1UXB1cTVqR2grOFJSOXF2MjcxRzFicGhRa3orVHJsSTJuTERtVyYjMTA7Z0hGZzk3QXZxSDdGSFBzQUxBaGdBd0FBQU1PUUhuT2ZEWTM3a0hyTlpaN2Y1d04vLzl5M1E0VEJqdEkxQjUyWXFxYzdYMTZJYWg3LyYjMTA7eUJZQ3h2aHlUMW15clZPeUVBNVdGMis4MkhPZEFpQVJkTHNCQUFBQUJxRFRNRVN6bUdNQWl6ZGFiQ0xNQ2lWM3cyQjhQVTJQU1NKTSYjMTA7ckU2NTBNQnhDSHoxMnkwakN3QllFY0FHQUFBQWhwTjdmaC9Td2x1KzR4aGpvYTFaZ25tZ25PQTVCeVBneFZLQkxtSmFYNEhGR3dIMCYjMTA7aGdBMkFBQUFNSnlVZ2czNUNNY3c4L3creHJsU1M4L3ZqN2hOT3JQTTlVc0FHeW14bE1ON241WktGK1J0S3R1a0ovbWF5d25BaWdBMiYjMTA7QUFBQU1CQmQ4TkEzN2NXWlR0K3hOOW9ML0tCaGx5K0JMRGJKQW9Pb3MrUkptVktCZWNhUlVwMXk1ZG50S0lDUkI1bm45em1MTndKbyYjMTA7Z3dBMkFBQUFNS3pjc00rK2U4eGxQWndEbmtlUVppQnZUci9KQzQwSHl6MFkwTHpBUU5KMWluSHhScVlQQWRBS0FXd0FBQUJnUUtFdiYjMTA7NXFpOXY4OGFkcm1yem1Hc29kNG5DVjcvRytNMVFEZVd2Q21MT1JZRXNaRkltVkpJdWV6WmJaOGplM3oxMlNhUUVUMEFJa0lBR3dBQSYjMTA7QUJoZTd2bjlQaGR6REdIdTYzL1NZYUw1WThZdE10aTl0U1ZCN0pKRkhaR0lWUTlsK3hUcUZBQ0pJSUFOQUFBQURDL2t4Ung5MzVzSCYjMTA7bEk0RldRbDEyaHYxMXJpN3ZDRDU5OWZyMThVZVh4Z0JmWkNSQjk2UlBXT1BPdEFYUkUyTE45N3BxQ1FBYU9VdFNmQkxnU3ZERnA4VyYjMTA7OHZlV29YK0pwWU9rZ2FURlhOT2pQcHp6eE5sN3gwaWxXazg3K2ZlOU5qNXVwclp3Z3lkZHoxcDgxTk4wTFRSZGIvUWhQdFgwbTdtdyYjMTA7ZWlpVkRIOERBRmhJZlZIVll4dFBmZjk5eVBlWWRZdGg4Y1lyNmpwRVFQTHhkWXY5ei9SK1c3bkhRR0ErdGZZZW9xOVQ3cXY4SzNtMyYjMTA7YWE1cEtkc2xvSnlQZkM4MnlibDZBTHFZWkFDN0ZrU2M2VFozajhIRTR4ZitaS1A3VENGdHBNSlpOcVJGV3dkUEdtcmJmMy9VNy9zaSYjMTA7RDQwcHY0WFYvTFlZS1YzbCsrUkhxdW1hYmZOT0lENDUyL0E5QUFERXBmTy9zRjY2Y1lkOUUyeEE5Q1Q0WEQwRHY2disrYm5sbjBwUCYjMTA7MGZleVZYOHZIVVNLN1VaQUd4R1Fkb2h2c2NUbFdPVzRkalk2cDA0Qk1JU2tBOWkxM3RSejl5TlkzYWIzOEdSb1dxMWQ4M0NmSVVnRiYjMTA7ZDE1OXYxU3NXV29QaWdHa3F6UktGd24xZEo5enR3SUFZaVVMSVZaMTg1M251U0J6SXdXdzlUbkZ0M2hqd1pWREpQZFhyaDA1UG5mOCYjMTA7aUlQdE03VGVIOXNSajRYK0xBbHFJN0E4YnhuWmMxenRNeCtwTE04OHYyZEVENERPa2dwZzZ4Q3d1V3Z1VFkzbkd5K0YyMjlnZjdzeSYjMTA7K0N5VllHc2c2WHFtNlRxZjJuUXRBQUFFS25mTm80bStMK1k0MGlncVg2RDhrc3VGbUdnUSsxN3ZzMTJmd2JjakhwK09kSlQ1dGt2MyYjMTA7R05UK1BqMGlMM3F3NXpyRk43SW5jK09zSDVBWmpoVUFPa210Qi9iUzBidTZpOHRBMHUxQUs3VlVWZ1pmQjVLdXgzcU5NN0k2QUFCNyYjMTA7Sjg4NnZ1bXdzcUViK3JVcHpuekhHcHEvTklnSVBFdEhPc3pjNC9RSzd3ZDZ0cGJ0dkhZL3lZOXRqKzNTL1FodzAyc2JRK2YzWER2eSYjMTA7Tlkzc3VaQjlodXo5YkZ5OHNlQ0tBZWdxdGFjL0hnN2FWelJ6MTI3eHdLR2Q2d05uN09tYXVmR25EWEdlaDVaRGNqd0FBUHVsQVlRdiYjMTA7bnQzT1JuZ2VrbUNEYi9GR1JtOGgxdnRNZWtWTDU2YmYzT09hSlE4amZPMjJ4N2JNU1N3dnFmNWRiZGZWdmZ4M3Rja2MzUkpvWEdyNyYjMTA7QytoVGJ0Z25HL2dZR05FRFlGQ3BCYkJMTG1scldZREhsRUlQN0FYSEJBQUFYcEQzRUF6WTFiS0hZd1NDSmkrTXFrMTZua3BIamorcSYjMTA7N2NxTkU4eCtTbnBzUzJEN1grNXhGSUVFdFdXYXY1Vk9Pd2dNWGFjTTF1N1hGNjVObmVJZXFGTUE3SW9BTm5aNVlKTDUzell2YkxjNyYjMTA7Zk81ODR1bTZJVjBCQUVpWFRIRlEvYmp6N0pZTk5YcEtBMlpONjhYY010UWJLZDUzMVpacE1QdlVQZmJNM3V6eGtDVGdKejIxcFpmMiYjMTA7dmZiUUpwaU5Mbm03ZEk4dlo1b2M2U2poSWZoZWlLNFowUU5nVjZuTmdWMDQvNXlDK0ZtYnhTNmxvYldTZExiT242VnZZK2V1M1R6YiYjMTA7c3dUUzlhaER1cG9yZGszWGhmN2RsTkxWbXA1NUQ1OGo2WFZCRVFFQUdFanVlVzQ5MExvK0grQzdHZXFOU2RONXFXOXF6OWJTWGptcCYjMTA7YmNjakg5S0JQbmZLdEgvU1llVnlwSVZja1ZhZDRtdTdaQVBWS1JsMUNvQ2hwUmJBdHI3VnE3OXBQNXZxeFcvWnEwZUNnaWR0MzV4cSYjMTA7b0Z0NkUwaFBvOUxaZ3EzSGthZnJ2TVh1OG9BNjc1aXVsekwwMEQyK3VMR2s2MVI2ZEh3Zkt0clRkU1NBRFFBWWlnUVJmQjB2bG4wSCYjMTA7R3d5TE44cFE3eldYWjFUYnhmK3dKenJpb0hqbVdYQ20yL2JmWTZ4eEkyMmh6ekpmZHZVell4RklXUE53bFdmdVBIbjArL29LZlM3bSYjMTA7cUwyNm05cWlHL0l3Z0Q0a0ZjQ1dnbEZYZ0phZzRIM3RJYVNvUFpqVUM5dVZtM0FBMjdVTGFGN3VNdXhIL3JaSzcwdEhEL20rMC9YNyYjMTA7Z2pET3RzTDZBY25kU2trU0FBQUdmRzR0cXpwY2hudzN2U3c5bGlrRmVtNzgrNElOb1EvMXZrcXNqcFpyV3pDOFBzaDd0SGp1LzJ0ZyYjMTA7KzlEOTZLMTlPRkNiVWdMWk1yM0lPM3BqdzJoVmJaOE4rMlE5MXlsTnlMc0FlcEZhRDJ4NTBIakZaUjFFMGRObkVNQiswa2pzS1YzZiYjMTA7azVTREJCWklDQURBa0tSaDd4dnRzM1Q5Qmh0aW56NGtaMzV1N1BrWnNYanVPVjZuK05zR3RlZjZzNDhPSk5JYjJ4SEVockZ0Nlp1NiYjMTA7Y3lFamNmcDRhV1padkpGOEM2QXZSR2RnZlZEcm8rY1BRNGQrVGRjK2V0dlFZd2NBZ0RpZkF3cm5YOHh4MGRkaWp0cHp0R2w0K1MxRCYjMTA7dllITzkzT3BDMFd1cW0ydWkwWCtWbTN2M09QSWdic2RQdjV6eTJrS01kMjJwYStEbEFTM3M1NiswdmRDTk9lcUFPZ0xBV3lNWGFGYSYjMTA7RzFpc3dHMUhRM000RzVJQUFEQXdYNC9uN1dLT2ZjaDJQQllBN2RvL0V0U1dVUU15bC9XcytsK24xZmFuZTV6M3ZLMmNGSVhCeXJEUCYjMTA7Y3RjdjBSZXIxQ2tBUmtNQUc2RTZKQW5NRDhiMHdCNk9QTno5M3JEUmtBQUE3TXBTbC9RVmJHaWFyb1NoM3NEd3orMDMxYmJVM3RuUyYjMTA7TTd0TnIrd2pYVEFQYU1wanBmTjN3am5xb1VlL3ZGaHRtcXJrUzUrTFJRTEFXNUlBZ2FLeVF4Q05ERklCQURCd1hYTS8wbUtPbWVmMyYjMTA7ZVNSSk5pUFhJSkY3UDYvdWE1bnVZZVhzNjlrc0hSMG80Q2M5bjg4TWVhblk0VHVZUGdUQXFPaUJqVkFmNkVwU3dZYnBWZ0FBaUo2bCYjMTA7b2I5ckwrellGMi9jbXBGZGtGQ2I1MTU2Wkx2SDN0Z1d4N3B3SHRDVXIrVEZpSzkzLzNuWHZLVHR6K09HWGU3MEdBQ2dOd1N3WWEyayYjMTA7RG52NERBS3R3MkM2RlFDcGV5QUprTEtoRjNNMExONjRDYWp6QVBjN3BsZ0c1TldQRDhiZGFWUEJJamZzazNYODdGUmVpQUtJQ0FIcyYjMTA7YVd2VFVPbmpRV2xHa3YvU29Cd3pYVk5vRVBMQURxVEpOOHlWNlh3d0JVTXU1aGpUVUcvdWQwelNtOU52VWdaWTVzVG1lUmg5MUNtVyYjMTA7dXVHNTl1dWhvUzdLU1g0QWZTT0FQZTJIcExMRjdvc2V2dEw2R2JlUnAyc3hjcnBtRTJvUUhuRG5BZ0FTSlExKzM4dm1Mc0dHV2ZYaiYjMTA7dkdFWEZtOEV3ckV5N0VNQUc1WTI2WDMxNDhyWHR1cXdNS2h2OGNZci9XNEE2QlVCYkZpRHhlOTNXYWxZSzhZTDQrNWxBdWxxWFZGOCYjMTA7dVVzdmJFM1hNK1B1VStuUlJNOHRwRmdXMDFnRkVxY05mdCtjb2NjZG5oc3l6KzlqRytvOUo3Y2dZWlo1ZzVrK0VGYTVwVDNhOGpOWCYjMTA7UFh3bkFMVDJsaVNZdk1JMUw4QlE5MWZWYVBxaWZ5TkJRbGwwNU5sZ29UYXU1T0ZLZnNwYjJyTVd4N1JPSkYwdEFYdDVlMzJ0NlNybiYjMTA7WFhyU2RkdG82NUt1eFZReXRhYlR2SllIWFMzZFh1b3g4T0IrRG43ZjYzL0xOYmw1NlpvQVBiazNsQlVBMG5kcGVINlFZRVBXNGpOOSYjMTA7KzRZV2JDaGJQdDhBeVpBWFdkVno3SzJuZlVZQUc5YjhWQmp5MC9jWG81YTJqbUU5aGR1V281RUJ3SXdBTnFTaDlMN0YvdWV1Tmd5MSYjMTA7cXNUNlBoNEpJcVlRd0Y0NWU0L3pNZEoxU2l0QnYyK1pwN2NPbm1rdzE2L0pObSt1QWxyb0NvaWVjWFFQalNGTUpkaHdZd2cyZkYvTSYjMTA7MFRKRXU5cHY0UWsyZkFtd1R2TWR6NHljQWsrK24yayt1WSswQTRMdjNqN21LcU5sZS8relp4L3JpOUhNOEYwQU1BaW1FS0doSkkyRSYjMTA7ZHdFZFVwYkNuRm1hcnA4Q09Sd0p2QzdJN1R1VEFMZThsUGh2MVRCYWtSem9tYVhYQzlPSUFOUFE1MktPTVMzZWFIVkVGb0hXaTVmViYjMTA7VnVqMjkzYVRaN1ZxKzh2RkcweGoxQi82dEhiKzlSVVd1amhqMC8xMjZKbzdhS1hTRVExQW9BaGd3K25DUFg4NCs3ek5RNUR2L2oybCYjMTA7WHNMVnVhemM0OHVCaHoybjY1enBMM3IzVVJwTkpBTjZaSGx4bCtxUVlVdGd2aVNMWUVJc3dRYnZuS1hhQzdWcEtvNVFSMmNWeG5PTCYjMTA7aHJ5QXJBVmFaU3ZyQVZjTnVxSmIvWEhtMHB0eWhnWHcwR2ViVlBKVDd0bk44bUkwOC93K1ovRkdBRU1pZ0kxdHhiYXVObWtNU0NENyYjMTA7ZHNTdmxybWYvNUR2VG5HK0xIMDVJT242Ym8vcFN2QjZHRHN0YkFvOFVScjJTVFcvelhwS0h5Q1Zad2ZyWW82K2V5ZlczdGVXQU1ncyYjMTA7c3NzcUx5RFBhdHZUWHVSMzVId0FBN0owdkZudStIczY5d0FZRkFGc2ZDZUJ1R3JMdFRFejVyeHFNc2R3THQrZFlqQlF6K2xTdDdIVCYjMTA7OVZMVGRVWU9IOHlLSkVCUFNzTStxVTRoWWprdlhzUmhhaXlCZ016emUxOXZ1anpFRXplK2VFL3RtYkVreXcrQ3hRNEI5OC8wbGh2UCYjMTA7YnNjdlRWZW4vNzlwK3FZTmF3UUJHQm9CYkRnTlhNczhjVEtuMWNFZURtRTd0L0JmcVV6TElIT0VWZHQ2eitsNjVIN00yY3diOFdHYyYjMTA7OFlJQVBUVXNDc051cVFhd2ZVTy9IeGlTaWdtV0NSTEU5WTNjeWhxZVEzeUxOMTRGSG16dzlVaWVrMHRnd0dLSHdBKzd2QmlsOXpXQSYjMTA7dlNPQVBYRWF2TDRJNkpEZUp4SnNsWFE5RHl4ZFZ4UEsydExvM3hpM1hkR0lSbDk4QVp1ajFGNllhSkROaDk3WG1DcmY4OUJSdytLdSYjMTA7bWVFNUpXUysrejYyRjNyMEJCNUdRUklBTnJybWdlOVpjOUh5LzM5L2ZrMXBIU3NBNFhwTEVreVhUbS9STlhodENmekp3M3FYbmc4UyYjMTA7Yk0xam5idFpBekxuQWFiclIwM1hNdUpzKzBsLzN0Y2J0N3ZPbjY2cmFwL293NWswK3R2MG1KOVJtcURIaHJpdlRKWThtbEl2bDRVeCYjMTA7WFlBcEJodHlmYW5mVkNkSm5iVjhwazQ3OXdRYlFyK3ZDczg1SE1qelZrUkJreE55OU42ZXkwOGliRlB3YkltaDVOSW1iUGo5MGRONyYjMTA7UnR1MkI1N1BCSURCRWNDZXRxekZ2Zy91TVdqU09nQ3FQUWEzRFN4cllIRFo4dmhpVHRkVnRhMDdwT3MyNE5vMlhaZXhadGdxalZZRCYjMTA7ZmU2OU5wWUxEUlpJZzlqNmttQk9VWUtlU0I2OE1OekR5VXkxNUd3QmJIcGdZK3JCaHZjTnYxODhVNi83N3FzWXloRExmYjl3L3NVdSYjMTA7UStFTFlCZGs5Y0hNSXF4SFpwN2YzM0paMFpHVS94OE5iZGxsaXpvbEoxa0JqSUVwUktadFlkeFBncXd6Q1I1MjZiMHJmNk9CeDdsKyYjMTA7bHNVODRuUzE5cjYrMDNTOTdKaXVOeDNTbFI1QWh2emE0dDRBK2xRWTlwR2VNVmtpNTJ0NitjYXdWQkJzOEpZSkp5MmY3NElQTm1nUCYjMTA7Y2QrenpZVytDSXNCejEvRFNIWEJUMTkrWVYySUZocW1XcHBpTzBmeXpsWExHRUZUblhMRjRvMEF4a0lBZTdvVitjeTE2TFhieHdKYSYjMTA7T2hUSjJ1dm5hQUlQU0tzZTA5WGFHRDBqOTV2U3REUTgzRzB4cnlYNnpIZVdYbFdyaUlJMkw1V1ZjdnlXMFNCZnlCbWdYUEJPTDVZOSYjMTA7dWJmT1BjR0dXSUpmbHBkWHF3akt1N25odWJZZ3QzZGl5Y3RSZFVyUXRzUkJEK2ROSHZpQkFQYlBmTzNHZjE2TWF2bkY5Q0VBZ2tBQSYjMTA7ZTdwbVBUY2dldjhzclRCall3NHF5ZHlXZTBwWEFxNDIxdUdtckhDUE1Sc1YzeHNXTHY1cFJOYk85aEtWM3RlQXYxeFl2UER2cm1WTSYjMTA7U09XRXovc0llbGV1ZW56bXdNL1Awb1dsem94czVGSkdmdW45ZVoyUmxiL2VONzRPRTNORDJzV3duZ0tBaEJEQWhxV1N1Ky94czFKLyYjMTA7NExJMm9tNTd2a2JGQU1mSUF6RXd2dHpacGdTU29mTjVqQ2VveDIwWkRYTFg4NHMrSU5ibk1GKzVVSjlHWk43MDdCRlRzRUduRDdLVSYjMTA7aCt0UVg4N3I0bWUrOHU0Mm9sN3hJVXBtNUpLT2tIMXYyTFhrc3YvRGN1K2NhOXJpQjE5SGlJV2hUbG1SakFER1JBQjd1cXhCekExSiYjMTA7MVlyMTRaaUdDb0JmYUJERDJydGFndGpyV0VaVlNPT3gydVRGMElYeFQyZ1lBVC9rbnQ4dm52eDhUb3dqTnl6SExLTlNpdEFDVlBwUyYjMTA7SWUvaDJxSlpZY3dqUWFlejF1WHJIczk1S3M5TjFnNG5sNlRXVCtrbTkwUFRDOEl6TFZOZkdtbjY0QmdsQjJCa0JMQ25hNThCRDFiTyYjMTA7Qm9EbVJwWjFZVmFaNjdhc0dobXJnSHNnSHNyeHVjZFJEZFlwZCtoOURmeGFMalJaZU9iT2pUWFlZQzBQcFd5NUNXV3FDQzN6cmgxVCYjMTA7SlkzQldsZElMOXliRUh2aTZyMWJHT3ZJT3hiTis4WEdlUDE1cm1oMzc2eWF5aTFHamdBWUd3RnM3SU8xc21PdVpqUTk3RXR2em5sdCYjMTA7VzBRMnh5SHdMRzBRdE1uTEVpRDU2QjREMmJrT1dkLzMvWG1vOTZRMGp2NVBqKytneFVkd0x3TS9sd3VsYXc3U1NPQ3JLUkFhWmJCQiYjMTA7ajNuVm9pejhYSlU3VWhabVk3L1UwK2VTcFh5L2xua1dWd1FqZDg0ajhuTDB6cmo3OWtYSFpRaUJiQWxjYXoxNTdld3ZlT2xKL0V6NSYjMTA7WnR4UFJxNFZFY3liUHhaZlhyb2dId0lJeVZ1U0FBRTdjZlJLZ2Z1cFo0b3ZBQ2FOKzV3VVF3SU5jcGthNU1yWnA5dHdlbjljYUFOTiYjMTA7L2x0R3UwakR2blEvaGh1WGZRWkxOQUFnMjZHVzJUUDl1Y3ZpcHA5Q21xZFh5NTlENTEvOCtIQzcrSERvOHd4cllNL2FnSi9wZVpYNyYjMTA7RExUVjh0ck1zTzljLzNtVFdBOHhDUmcwemFkOGxHS3dvYnFHbDhhNXBPdnA4Tms5QnJNM1d2NFZmZWJoMmoyMExmUG1IY285NlZtKyYjMTA7R3ZFZTJ0NFhoOFo3L2o2aXRXdFdlczJ0ZGFYTU15MExnTjQreVI4M0E2Yi9OcytjMVBMTVVZYzhrdytjVDJJc2EzUE5BNVlYNVZLTyYjMTA7WEd2WnNOWmpMOXdFU1hsWXBjTVg5emlhcjQzTkJOYTFBaEFnQXRqWUIyc0RoSW9ScnRiWU9pQVpNTEdHUmFhQjZJdU9IM0hzZmdSVSYjMTA7UHRZYW5QVjlwTmRhMmVJelR3YStGNlUzNG1yQWhya2MvK1dPZFZOVGV2LzFUQnJYU2JEa3VVWit2c3VVS2RLYjBEMGZrSllBeE5HTyYjMTA7NTNXeHpZTXZuTmZEUy9WMWRVN3pQVndIdDcwT0RjZjhVcjZYUU1ZeTRESkJYbXpkZGJpbXR3a0VHeGFhejlxZSs1bHVIMnY1NFdHSCYjMTA7Wjh3K3k4QmwxNEM2ampqTFhuaGVPaDc0bmhlYmhuTzYyY085a1d1YXRDMC90dlhrKzRiOFVYUTRwSG5QMTJScjFTWlFQSld5VnRKRSYjMTA7NjhHUEhjcUcrckZ2T243L1BPS3lWWjQ5emp2OERRQ01qZ0EyTEEvcSs1THl2RnBNanpLTUdVbUFsUFFReFBZNWNyc0hPUHZ5NXdqQiYjMTA7dzhPZUd1MWR2UlRFS0hxb3EvZDFYZ2Nkdm52ZjF5R2tmTitXQkE0K3R2eWI2SWQ2YTRCS2d0anJIcTdkd1o3em43amFjWjcvMlo3UCYjMTA7NFN6QTU5dXVMemw4K2VNc2tOdmdpNHhHb0t4dExPZXlIYjh2bEdzOVp0bmE5c1hvQTJ1VUFOZ1g1c0NHOXlHdXp6a0VRMXc0WlUrTyYjMTA7Ky95dzJoQytxZXZ6SWRtYXBnOGtPd1p1WEVpRDdGM0NlVTNPNjQrUWU3NENBY25iM2wrcEJCdTBaNis4cklsOU1mQVBXcTZqMy93aCYjMTA7SFY4V0xzM0Y0bVdhQi9LTTdmcnpYTjdlNVVEN0FrQ3ZDR0JQVjlGaTN6NFhCT1BoUy9XODBOcUNGTzA5WGEyZncxUTNHS05obHJ2SCYjMTA7SG5kWENaMldOREkveVhsSkR5Q3VNbUFxQzByM0dNeXl5aE03ZjVtWCtVVExqdGdDVlJKWVBlM1FpeGIyL0NIUFpQT1c5MGpvWkYySSYjMTA7UldMeitROTkvUWxpdDVNUHRDOEE5SW9BTml4NldhbGI1MkZMdllmZFRjdDBQZXdwWGJNV2Y1TDZBL0JxMTNUVmVSU1B1ZlVSV01QcyYjMTA7WG52dC9lWWVnemQza1o2S0hQY0g5eGk0WHRFb0IxcHJFMEJJTWxpcWMrWFBYQnlCYkFsY3Y1UEFPd3VmalZaWFNpZUUzMTNjZ1d4NSYjMTA7WWYzYmtPdENKSHI5YjF4Nkwvd0h2MmVNNmZWbG40czVBMERTYzJBM1RLc3cwMjF1L0NoWmpWc2VIa3IzL0VJVVpZU0ZlWnVBZ2N3RiYjMTA7ZDFPbGdUU1kxbTFYYXRicklBK1NtV3UzOEUyTUQvbHQwbFdtdXloMTBaRmloM1I5MytIQkxqWnRqdmxZOCt0SzA3VTBwdWVobGdtUyYjMTA7cG0zbUcrWkJEbU0zTkNUUFNmNWU2UXVzaGViZGtPZHVsSVdSMW5wUEVzQUJkaXNEckhPV2JsSU9ObWpRWlZzV1pyV3lNSVJGbjdkbCYjMTA7M3BxQXo5N3loenhYRjlvSlo2RmJ5UFdrdklncGF2bUdsN3U3bFEyWnRyR1dldTBQQnJ4dUtWZ2Iyajg1dVF2QVByMzYzMzllL2QzMSYjMTA7d1N6RUZYZXJpdXJ2UFIvQzcyMERrUkdubGZRb2VlbmhhdGNWdDJYT3h1Z1dPdFFnNlA4Rm5LNTNWYnJPWWl5c3FyUzkzK0hoOCttSyYjMTA7OG4ybTZZZlFoZ05YYVZWMGJhUlY1L0tLcWpGZUd0Q1diYVkvRC9YbkdBRWRDYWlWV243ZDZGYUdGTERXUUVZVzRLVXJkbmwyME9CZCYjMTA7Y0dYN1N6MEhBNzRPWlN6elJldDBXU2RENXFzRXlzRjZlVGpVUW5MYmN1OW0rM09NTk5kT0RQTUFrejhQUFdDdmFWZXZKNTBiTjdBOSYjMTA7V2wxSldmdHNtVG5mb1V4NGVyOG44MUsrU2g4SllKK24ySVlFa0E0QzJQMkxLWUF0Rlc2bzB5UjgwZUYvTVQ0QWxHNjhGYmZidW9wMSYjMTA7NFNERGc5VytuSWIyOEVvQUd3MTVZeHZVZnVxbC8vOVBZOU9sTXdJSndIVEx3T2ZhTGszdEdhbmZuM1lxdUdja1NiTDVZL3ZTMTdYTSYjMTA7SjFzdnRRR3BLK083M3BPNTMvVkZ4Mzg5dTMxZy9uNEErL2FXSkppMHZOcitGZWl4eGJ5Z2x4ejcrMENQcllnOFhVTUxZTi9SaUVWTSYjMTA7R3ZKclFlb0FtRUFaV0ZEK29TRi8zRGZrQi9MSnRLNzNsS3lNY1FNQTJDc1djWncycVloQ25MZExqaW5tQVBabG9PbDZGOHZRNkJjZSYjMTA7TXVYWVExdTBidVVBQUFBQUlETGFDOTAzNnZtS09ka0JoSUFBOW9ScFJiUU04TkN5bUN0SkhTSVlZcm91RXNpMklaM0RWY3d2QkFBQSYjMTA7QUFCTW1yUlpmZXVrckVnbUFDRWdnRDF4R29CNzU4TG9NU3pIOEVkMVRHdlN0VmZTYS9rMGhha3U5QnhPM2Y1N1l2OFo2MXppQUFBQSYjMTA7QUtaTmUxLzdPbDF0bUw4ZFFDZ0lZR01iYkoxVjJ5ZTNuOERnYmJWOWtHTklJWGdkWUxxZXBEUlBzNXlMcm9MOVRzOXhMUEl5NHNvOSYjMTA7THRTNnBPUUFBQUFBRUNsNlh3T0l5cXYvL2VmVjN4My9WdDdHelVNN29SZFdGeC9UVGV4elJPbEt4TEp0MC9KcG1wNFlLcnN0Q2ZvOSYjMTA7RFo0V3RaODNVNWxUUzlQMXhQMVk3WnAwN1NkZEQydnBlbGo3dVNYL1ByYVdhN1YvMzJzYTMydDZGaEdsaVJ6cldaZS9yYzd6RlZVaiYjMTA7QUFBQWtIVDdxZlMwUFcrcmRzRUpxUVVnRkc5VE82R1lna3dCcDJHcEZScHBPVXk2cmttTlh0TjF1NEk0K1JVQUFBQUFtbGw2WDErUyYjMTA7VEFCQ3doUWlBQUFBQUFBQWlkTlJ3YjdwRU85WXJCNUFhQWhnQXdBQUFBQUFwRTk2VmpQM05ZRG9FTUFHQUFBQUFBQkltSzRYZHU3WiYjMTA7YlVQdmF3QWhJb0FOQUFBQUFBQ1FLRjI0TVRmc3VpSzFBSVNJQURZQUFBQUFBRUM2Wk9xUUk4OCswdnU2SUtrQWhJZ0FOZ0FBQUFBQSYjMTA7UUlLK1hyL09xaDhYaGwwelVndEFxQWhnQXdBQUFBQUFKT2JyOWVzVDk5ajcydWZUbTlOdkpTa0dJRlFFc0FFQUFBQUFBQktpd2V1aSYjMTA7Mmc0OHU5NjlPZjIySXNVQWhJd0FOZ0FBQUFBQVFDSmFCSzlGUm9vQkNCMEJiQUFBQUFBQWdBUjh2WDY5Y1BiZzlTY1diZ1FRZzdjayYjMTA7QVFBQUFBQUFRTHkrWHI4K2RJL3pYVjhZLzJURDFDRUFZa0VBR3dBQUFBQUFJRUpmcjEvUDNPTTBJRXRuNjNVdDdxcHRRZW9CaUFVQiYjMTA7YkFBQUFBQUFnRWg4dlg0OXIzN0lQTmZ5ODd6bG56OVUyK0xONmJkN1VoSkFMQWhnQXdBQUFBQUFqRWdYV3J4cytXZG5PMzZ0QksvbiYjMTA7YjA2LzNYQUZBTVNFQURZQUFBQUFBTUM0Wk03cXN4Ry9qK0ExZ0dpOUpna0FBQUFBQUFDU0pYTmVFN3dHRUMwQzJBQUFBQUFBQUduNiYjMTA7VW0wbkJLOEJ4SXdwUkFBQUFBQUFBTklpdmE2WGIwNi9yVWtLQUxFamdBMEFBQUFBQUpBR0NWeXYzcHgreTBrS0FLa2dnQTBBQUFBQSYjMTA7QURDdXN0bzJycCtGSENWb1hWUmIvdWIwVzBIU0FrZ05BV3dBQUFBQUFJQVJ2VG45VmxZLzV2THZyOWV2NWVkSnRSMXUvNStxQjdjMyYjMTA7dFgrWHVzbTgxamY2V1FDUUxBTFlBQUFBQUFBQWU2SzlwZ3RTQWdDZTk1b2tBQUFBQUFBQUFBQ0VpQUEyQUFBQUFBQUFBQ0JJQkxBQiYjMTA7QUFBQUFBQUFBRUVpZ0EwQUFBQUFBQUFBQ0JJQmJBQUFBQUFBQUFCQWtON3U4TGVIWDY5ZnowbENBQWpPSVVrQUFBQUFBQUJTOE9wLyYjMTA7LzNuMU44a0FBQkJ2VHIrOUloVUFBQUFBQUVBb21FSUVBQUFBQUFBQUFCQWtBdGdBQUFBQUFBQUFnQ0FSd0FZQUFBQUFBQUFBQklrQSYjMTA7TmdBQUFBQUFBQUFnU0FTd0FRQUFBQUFBQUFCQklvQU5BQUFBQUFBQUFBZ1NBV3dBQUFBQUFBQUFRSkFJWUFNQUFBQUFBQUFBZ2tRQSYjMTA7R3dBQUFBQUFBQUFRSkFMWUFBQUFBQUFBQUlBZ0VjQUdBQUFBQUFBQUFBU0pBRFlBQUFBQUFBQUFJRWdFc0FFQUFBQUFBQUFBUVhwYiYjMTA7YlJ1U0FRQUFBQUFBQUFBUW12OFhZQURBZVk4bEMzMlZjd0FBQUFCSlJVNUVya0pnZ2c9PSYjMTA7IgogICAgICAgaWQ9ImltYWdlMSIgLz4KICA8L2c+Cjwvc3ZnPgo=" \ No newline at end of file diff --git a/private_gpt/ui/images_icon.py b/private_gpt/ui/images_icon.py new file mode 100644 index 00000000..0bb1fe9e --- /dev/null +++ b/private_gpt/ui/images_icon.py @@ -0,0 +1 @@ +avatar_svg = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iNDc0LjAwMDAwMHB0IiBoZWlnaHQ9IjI0OC4wMDAwMDBwdCIgdmlld0JveD0iMCAwIDQ3NC4wMDAwMDAgMjQ4LjAwMDAwMCIKIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiPgoKPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsMjQ4LjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKZmlsbD0iIzAwMDAwMCIgc3Ryb2tlPSJub25lIj4KPHBhdGggZD0iTTIyMzIgMjExMiBjLTI3IC0zNyAtNjggLTk1IC05MiAtMTI4IGwtNDIgLTYyIC02MiAtNiBjLTMzIC00IC0xMDYKLTE2IC0xNjEgLTI3IC00OTAgLTEwMCAtODM2IC0zMDUgLTk2NiAtNTc0IC0xNDkgLTMwOSAzMCAtNjMwIDQ3MCAtODQyIDEzMwotNjQgNTA0IC0xODMgNTIwIC0xNjcgMyAyIC00MSA5MyAtOTYgMjAyIC05MiAxNzkgLTEwNCAxOTkgLTEzOSAyMTYgLTYzIDMyCi0xNDMgNDYgLTI3MiA0NiBsLTEyMyAwIDE4IDMxIGMyOSA1MSAxNzEgMTk3IDIzOSAyNDUgNjIgNDQgMjI1IDEyNyAyNzYgMTM5CjI1IDYgMjkgMiA1MyAtNDcgMzIgLTYyIDEwMSAtMTU4IDExNSAtMTU4IDYgMCAxMCA4IDEwIDE4IDAgMzIgNTggMTQxIDk5IDE4NQoyMyAyNCA1OSA1NyA4MSA3MiA0OCAzMyA1MCA0NSAxMCA0NSAtNDcgMCAtMzUgMTUgMjcgMzQgNTMgMTcgNTYgMTkgMzggMzIKLTEwIDggLTI0IDE0IC0yOSAxNCAtMjEgMCAxOSAyMCA0MSAyMCAyMCAwIDIxIDQgMTYgNTggLTcgNzEgMTQgMTI4IDUyIDE0MgoxNSA2IDUxIDEwIDgyIDEwIDQ5IDAgNTQgMiA0MiAxNiAtMjAgMjQgLTY5IDQ3IC0xMjkgNTkgLTUzIDExIC01NSAxMyAtNjggNTYKLTI0IDc4IDQgMjAxIDYxIDI3NCAxNiAyMCAxNyAxOSA1NiAtMjUgNzUgLTg0IDExMiAtMTc1IDEzOCAtMzM0IGw4IC00OSA3MAotMTkgYzg1IC0yMyAyNzIgLTExNCAzMzkgLTE2NSA0NCAtMzQgNTEgLTQ1IDcxIC0xMTMgMTIgLTQxIDI1IC04MyAzMCAtOTIgNgotMTUgMiAtMTggLTIxIC0xOCAtNDQgMCAtMjEgLTEzIDE0MSAtODAgODMgLTMzIDE4NSAtNzYgMjI4IC05MyA3MyAtMzAgNzcKLTM0IDcyIC01OCAtMyAtMTQgMSAtNDUgMTAgLTY3IGwxNyAtNDEgLTY2IC02MSBjLTcyIC02OCAtMTM1IC0xMjAgLTE0NSAtMTIwCi0zIDAgLTYyIDEwIC0xMzEgMjEgLTc4IDEzIC0xOTUgMjMgLTMxMCAyNiAtMTY3IDUgLTI0MCAxIC00MzUgLTIzIGwtNTAgLTYKLTIzIDQxIGMtMzAgNTQgLTUyIDE1OCAtNTIgMjU2IGwwIDgwIC0yMCAtMjUgYy02MSAtNzggLTg2IC0yNTAgLTU2IC0zODEgMTAKLTQxIDE5IC03OSAyMSAtODYgMyAtOSAxOCAtNyA1OSA3IDY1IDIyIDIxNiA1NCAyMjMgNDcgMyAtMyAtMTUgLTE2IC0zOSAtMjgKLTk1IC00OCAtMjE0IC0yMDUgLTIzNCAtMzA2IGwtNiAtMzMgMTYzIDAgYzU1MSAwIDEwNTkgMTYyIDEzMjcgNDIzIDMxMCAzMDMKMjQ4IDY2OSAtMTYxIDk0NiAtMjcgMTkgLTEwNCA1OSAtMTcwIDkxIC0xNzIgODEgLTMyNiAxMjkgLTUzNSAxNjYgbC0xMDQgMTgKLTMwIDY4IGMtMTcgMzcgLTM3IDY4IC00NSA2OCAtMjQgMCAtODkgLTM4IC0xMjggLTc1IC0yMSAtMTkgLTM5IC0zNCAtNDAgLTMzCi0xIDIgLTEzIDIzIC0yNyA0OCAtMzAgNTEgLTExNiAxNTUgLTE0NiAxNzYgLTE5IDEzIC0yMyA5IC03MCAtNTR6IG0tMTgyCi0yOTQgYy0xIC03IC05IC0yOCAtMTggLTQ3IC0xNiAtMzMgLTIxIC0zNSAtOTUgLTQ4IC00MiAtNyAtOTQgLTIwIC0xMTQgLTI4Ci0zMyAtMTQgLTM1IC0xNiAtMTggLTI4IDE1IC0xMiA1IC0xNyAtODYgLTQ2IC0yNDMgLTc2IC00NzIgLTE5NCAtNjM4IC0zMzAKbC00NCAtMzYgMjMgNDUgYzY5IDEzNSAyMDUgMjU2IDM5NSAzNTAgMTQ3IDczIDI2OSAxMTQgNDQ1IDE1MSAxNjEgMzMgMTUwIDMyCjE1MCAxN3ogbTg3OCAtMzggYzUyNSAtMTI4IDg0NSAtNDI4IDc5MyAtNzQzIC0zOSAtMjM3IC0yODYgLTQ1MSAtNjYxIC01NzIKLTE2MyAtNTIgLTI3OSAtNzUgLTUxNCAtOTkgbC0zOSAtNCA2IDUyIGM5IDg5IDcwIDE4NiAxNDAgMjIyIDQ3IDI1IDE0NSAyNwozNzQgOSAxMjIgLTEwIDIzMyAtMTUgMjQ3IC0xMSA1MyAxMyAzMTAgMjUzIDMyMiAzMDAgMTAgNDIgLTUgNTggLTgyIDg2IC0xMzQKNTAgLTM2MSAxNjggLTM4NCAyMDAgLTI2IDM2IC02NCAxMzIgLTc0IDE4MyAtNiAzMyAtMjIgNDggLTEzMCAxMzMgbC0xMjMgOTUKLTEyIDY3IGMtNiAzNyAtMTQgNzcgLTE3IDkwIC04IDI5IDMgMjkgMTU0IC04eiIvPgo8cGF0aCBkPSJNMjYzMCAxMzYwIGMwIC00IDcgLTExIDE1IC0xNCAxMiAtNCAxNCAtMTQgMTAgLTM5IC0xMCAtNTIgMTkgLTcxCjExMyAtNzUgbDc3IC0zIC0zOCAzNSBjLTIxIDE4IC01NSA0NiAtNzYgNjAgLTQwIDI4IC0xMDEgNTAgLTEwMSAzNnoiLz4KPC9nPgo8L3N2Zz4K" \ No newline at end of file diff --git a/private_gpt/ui/logo.png b/private_gpt/ui/logo.png new file mode 100644 index 00000000..04cb7225 Binary files /dev/null and b/private_gpt/ui/logo.png differ diff --git a/private_gpt/ui/ui copy.py b/private_gpt/ui/ui copy.py new file mode 100644 index 00000000..7c34e849 --- /dev/null +++ b/private_gpt/ui/ui copy.py @@ -0,0 +1,454 @@ +"""This file should be imported only and only if you want to run the UI locally.""" + +import itertools +import logging +import time +from collections.abc import Iterable +from pathlib import Path +from typing import Any + +import gradio as gr # type: ignore +from fastapi import FastAPI +from gradio.themes.utils.colors import slate # type: ignore +from injector import inject, singleton +from llama_index.core.llms import ChatMessage, ChatResponse, MessageRole +from pydantic import BaseModel + +from private_gpt.constants import PROJECT_ROOT_PATH +from private_gpt.di import global_injector +from private_gpt.open_ai.extensions.context_filter import ContextFilter +from private_gpt.server.chat.chat_service import ChatService, CompletionGen +from private_gpt.server.chunks.chunks_service import Chunk, ChunksService +from private_gpt.server.ingest.ingest_service import IngestService +from private_gpt.settings.settings import settings +from private_gpt.ui.images import logo_svg + +logger = logging.getLogger(__name__) + +THIS_DIRECTORY_RELATIVE = Path(__file__).parent.relative_to(PROJECT_ROOT_PATH) +# Should be "private_gpt/ui/avatar-bot.ico" +AVATAR_BOT = THIS_DIRECTORY_RELATIVE / "avatar-bot.ico" + +UI_TAB_TITLE = "My Private GPT" + +SOURCES_SEPARATOR = "\n\n Sources: \n" + +MODES = ["Query Files", "Search Files", "LLM Chat (no context from files)"] + + +class Source(BaseModel): + file: str + page: str + text: str + + class Config: + frozen = True + + @staticmethod + def curate_sources(sources: list[Chunk]) -> list["Source"]: + curated_sources = [] + + for chunk in sources: + doc_metadata = chunk.document.doc_metadata + + file_name = doc_metadata.get("file_name", "-") if doc_metadata else "-" + page_label = doc_metadata.get("page_label", "-") if doc_metadata else "-" + + source = Source(file=file_name, page=page_label, text=chunk.text) + curated_sources.append(source) + curated_sources = list( + dict.fromkeys(curated_sources).keys() + ) # Unique sources only + + return curated_sources + + +@singleton +class PrivateGptUi: + @inject + def __init__( + self, + ingest_service: IngestService, + chat_service: ChatService, + chunks_service: ChunksService, + ) -> None: + self._ingest_service = ingest_service + self._chat_service = chat_service + self._chunks_service = chunks_service + + # Cache the UI blocks + self._ui_block = None + + self._selected_filename = None + + # Initialize system prompt based on default mode + self.mode = MODES[0] + self._system_prompt = self._get_default_system_prompt(self.mode) + + def _chat(self, message: str, history: list[list[str]], mode: str, *_: Any) -> Any: + def yield_deltas(completion_gen: CompletionGen) -> Iterable[str]: + full_response: str = "" + stream = completion_gen.response + for delta in stream: + if isinstance(delta, str): + full_response += str(delta) + elif isinstance(delta, ChatResponse): + full_response += delta.delta or "" + yield full_response + time.sleep(0.02) + + if completion_gen.sources: + full_response += SOURCES_SEPARATOR + cur_sources = Source.curate_sources(completion_gen.sources) + sources_text = "\n\n\n" + used_files = set() + for index, source in enumerate(cur_sources, start=1): + if (source.file + "-" + source.page) not in used_files: + sources_text = ( + sources_text + + f"{index}. {source.file} (page {source.page}) \n\n" + ) + used_files.add(source.file + "-" + source.page) + full_response += sources_text + yield full_response + + def build_history() -> list[ChatMessage]: + history_messages: list[ChatMessage] = list( + itertools.chain( + *[ + [ + ChatMessage(content=interaction[0], role=MessageRole.USER), + ChatMessage( + # Remove from history content the Sources information + content=interaction[1].split(SOURCES_SEPARATOR)[0], + role=MessageRole.ASSISTANT, + ), + ] + for interaction in history + ] + ) + ) + + # max 20 messages to try to avoid context overflow + return history_messages[:20] + + new_message = ChatMessage(content=message, role=MessageRole.USER) + all_messages = [*build_history(), new_message] + # If a system prompt is set, add it as a system message + if self._system_prompt: + all_messages.insert( + 0, + ChatMessage( + content=self._system_prompt, + role=MessageRole.SYSTEM, + ), + ) + match mode: + case "Query Files": + + # Use only the selected file for the query + context_filter = None + if self._selected_filename is not None: + docs_ids = [] + for ingested_document in self._ingest_service.list_ingested(): + if ( + ingested_document.doc_metadata["file_name"] + == self._selected_filename + ): + docs_ids.append(ingested_document.doc_id) + context_filter = ContextFilter(docs_ids=docs_ids) + + query_stream = self._chat_service.stream_chat( + messages=all_messages, + use_context=True, + context_filter=context_filter, + ) + yield from yield_deltas(query_stream) + case "LLM Chat (no context from files)": + llm_stream = self._chat_service.stream_chat( + messages=all_messages, + use_context=False, + ) + yield from yield_deltas(llm_stream) + + case "Search Files": + response = self._chunks_service.retrieve_relevant( + text=message, limit=4, prev_next_chunks=0 + ) + + sources = Source.curate_sources(response) + + yield "\n\n\n".join( + f"{index}. **{source.file} " + f"(page {source.page})**\n " + f"{source.text}" + for index, source in enumerate(sources, start=1) + ) + + # On initialization and on mode change, this function set the system prompt + # to the default prompt based on the mode (and user settings). + @staticmethod + def _get_default_system_prompt(mode: str) -> str: + p = "" + match mode: + # For query chat mode, obtain default system prompt from settings + case "Query Files": + p = settings().ui.default_query_system_prompt + # For chat mode, obtain default system prompt from settings + case "LLM Chat (no context from files)": + p = settings().ui.default_chat_system_prompt + # For any other mode, clear the system prompt + case _: + p = "" + return p + + def _set_system_prompt(self, system_prompt_input: str) -> None: + logger.info(f"Setting system prompt to: {system_prompt_input}") + self._system_prompt = system_prompt_input + + def _set_current_mode(self, mode: str) -> Any: + self.mode = mode + self._set_system_prompt(self._get_default_system_prompt(mode)) + # Update placeholder and allow interaction if default system prompt is set + if self._system_prompt: + return gr.update(placeholder=self._system_prompt, interactive=True) + # Update placeholder and disable interaction if no default system prompt is set + else: + return gr.update(placeholder=self._system_prompt, interactive=False) + + def _list_ingested_files(self) -> list[list[str]]: + files = set() + for ingested_document in self._ingest_service.list_ingested(): + if ingested_document.doc_metadata is None: + # Skipping documents without metadata + continue + file_name = ingested_document.doc_metadata.get( + "file_name", "[FILE NAME MISSING]" + ) + files.add(file_name) + return [[row] for row in files] + + def _upload_file(self, files: list[str]) -> None: + logger.debug("Loading count=%s files", len(files)) + paths = [Path(file) for file in files] + + # remove all existing Documents with name identical to a new file upload: + file_names = [path.name for path in paths] + doc_ids_to_delete = [] + for ingested_document in self._ingest_service.list_ingested(): + if ( + ingested_document.doc_metadata + and ingested_document.doc_metadata["file_name"] in file_names + ): + doc_ids_to_delete.append(ingested_document.doc_id) + if len(doc_ids_to_delete) > 0: + logger.info( + "Uploading file(s) which were already ingested: %s document(s) will be replaced.", + len(doc_ids_to_delete), + ) + for doc_id in doc_ids_to_delete: + self._ingest_service.delete(doc_id) + + self._ingest_service.bulk_ingest([(str(path.name), path) for path in paths]) + + def _delete_all_files(self) -> Any: + ingested_files = self._ingest_service.list_ingested() + logger.debug("Deleting count=%s files", len(ingested_files)) + for ingested_document in ingested_files: + self._ingest_service.delete(ingested_document.doc_id) + return [ + gr.List(self._list_ingested_files()), + gr.components.Button(interactive=False), + gr.components.Button(interactive=False), + gr.components.Textbox("All files"), + ] + + def _delete_selected_file(self) -> Any: + logger.debug("Deleting selected %s", self._selected_filename) + # Note: keep looping for pdf's (each page became a Document) + for ingested_document in self._ingest_service.list_ingested(): + if ( + ingested_document.doc_metadata + and ingested_document.doc_metadata["file_name"] + == self._selected_filename + ): + self._ingest_service.delete(ingested_document.doc_id) + return [ + gr.List(self._list_ingested_files()), + gr.components.Button(interactive=False), + gr.components.Button(interactive=False), + gr.components.Textbox("All files"), + ] + + def _deselect_selected_file(self) -> Any: + self._selected_filename = None + return [ + gr.components.Button(interactive=False), + gr.components.Button(interactive=False), + gr.components.Textbox("All files"), + ] + + def _selected_a_file(self, select_data: gr.SelectData) -> Any: + self._selected_filename = select_data.value + return [ + gr.components.Button(interactive=True), + gr.components.Button(interactive=True), + gr.components.Textbox(self._selected_filename), + ] + + def _build_ui_blocks(self) -> gr.Blocks: + logger.debug("Creating the UI blocks") + with gr.Blocks( + title=UI_TAB_TITLE, + theme=gr.themes.Soft(primary_hue=slate), + css=".logo { " + "display:flex;" + "background-color: #C7BAFF;" + "height: 80px;" + "border-radius: 8px;" + "align-content: center;" + "justify-content: center;" + "align-items: center;" + "}" + ".logo img { height: 25% }" + ".contain { display: flex !important; flex-direction: column !important; }" + "#component-0, #component-3, #component-10, #component-8 { height: 100% !important; }" + "#chatbot { flex-grow: 1 !important; overflow: auto !important;}" + "#col { height: calc(100vh - 112px - 16px) !important; }", + ) as blocks: + with gr.Row(): + gr.HTML(f"