Add files using upload-large-folder tool
Browse files- obfuscated/pipeline.py +3 -0
- obfuscated/prompts.py +3 -0
- obfuscated/pyarmor_runtime_000000/__init__.py +2 -0
- pipeline.py +214 -0
- prompts.py +174 -0
obfuscated/pipeline.py
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
# Pyarmor 8.5.11 (trial), 000000, non-profits, 2024-10-10T13:10:42.002286
|
2 |
+
from pyarmor_runtime_000000 import __pyarmor__
|
3 |
+
__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x0b\x00\xa7\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00,/\x00\x00\x12\t\x04\x00\n\xf3\xf4/\xfev\x14\x90:\xa9\xd3\xc4B\xab\xc9\xaa\x00\x00\x00\x00\x00\x00\x00\x00\xe6\xf7x\xa0\xb3\xbf\xd1\x9f\x1c\x1d\xfc\xae\xc9F\x11\xdf"f\x05\xc6\xbd\twW\xdfX\x86r\xf5\xe1\x12\xb2\xea\x97[|\x15t]G\x04eee{\xf7\xbe\xc6W{hV\xbb\x11\xc9n\x1d\xd7I\xabbX\x1e(O\xb9qq\xd60\xe2fo\xe3\x06m\xc0\x87\xdf9\xee\x15#\x94\x1a&\x86f\xcc\xa6:9\x92\xa5\x1e\xc2\x83d\x01\xe2\x82\x9c\x18\xc3\x05\xc1V\x7f\x82S|\xa5a6\xb7\x82\xc5\xb3]\xaf\x04\xe9\x92\xde\x08||\x92\xbf"\xa9\xdd\xf3\xa4\xf3\xf2\x15\x1c\xe4\n\xfa\x19f,D\xe1\x04\x10\x14\xa2\xc5\xb0\xa4\xc8p#E/\x8d>\xf6|\xed\xb1\x8b\xb0\x1a!\xc3\x1f\xc0\xce\xc5z\xe3\xb2\xac\x96\xf7\xb5\xb4\x07(YW\xb5s\xac\xc4\xfe\xbb\xe6(\xf9\xef\x9d\xa1\xde\xdc.{\x88\xbe@\xb4\xe1\xf0QJ\xeeZ\x8d\xb0\xf2\xc8\x04\xf7J\x14\xb3U\xee\xbc\xfeT^\x9bi\xe7\x8dr\xf7\xb4K+c\xeb&\xf2\xb3\x9c\xcfX\xb3\xfe\xd2\x07H8\x15\xb9\xcf\xea|nA\xe2\x8c\x9d\x07*\xdc\xd4\x1e\xacZ\xee\x90\xa7\xb5\xd6Mk\x98\x89\xbf1\xabh]\xdd\x01nkcl\xbe\xbfv\x85\x82^\xc5\xc3C;!\xd4\x08\x02\t\xf5\x00n!\x9f\x1ay\xef\x15J\xc3\x03\xee0\xa7\x91c\xfdk\xfe\x97\xf4~PT\x8b\xcb\xda\xd7k\xa5\xb1\xca\x81\xafC\xc9$\xcf\xb7\xd0\xe2\x18\xee\xd0`%S\xa7-\xdfz\x04\'\x96\x91\xdd\xdf\xe7%\xec\x92\x96\x8fb\xd9\nk\xef\x06l\\(\xab\x0fc\x8c\x11j\xa1\x81\x1f&\xb0\xecYF\xb6\x8bWw.\x1b\xda\x98\x91q\x96@\x0e\x1a*(j#\xf2\xddu\xb7\\0\xe0Q\xeb<\x1e\x80\x9d\xd0(Z\xf1\xe3t\xea\xea\xe1\xf8\x9be;\xbb\xc2\xd9LhN\x8c-\xb9\xd9\x94\xc0w\\\x94+L\xb9\x9c\xbf\xa2\xd8s[\x9f\xfa\xbb6\xf7\r\xf4\xc4E\x17\x14\xd4\x95\xff|)\xf87\x9d\xc7\x9ceYr\xa4\xda;\xeb\xc1\xac\xe3G\xe9\xd5J\x8aC\xb6\xc6\x1f\xd9\x01\x05\xfa\x19\x0f4"\x8aG\xbe\xfc\xaei\x11\xd4l\x12\x83\x05\xe5/\xcbU6\xf9\x9fi\xec}\xf3\xdb\xed"\xd9dos\x9eW\x15:\xa0\xb84\x1e\xa0\x0f\x07\x1c\x01\xc2|\xc1:\xfb]\xbf\xefd\xe2M\x97\xcaELw\n9K\xbdJ1\xce"xG\xec\xf7\xe0Q\x15\xa2\x96\x89\xa5N\xa9\xf7"x\x04\x95\xf4\x07Bd\x1dMB\xda+\xec\x12\xc0\xea\xa8\x81&s\xb0\xe0\x87\x15\xf6\xa4\xc0*\xa3\x14z\xab2\xdc3f{\x16\x87\x1b<\xfb\xccuB\xdd\x07>\xf5\xac\xc2N!\x91\xf9\xdf\x0f\xd7\xcc\x12\x05\xe9\x9fH$\xa9 0\xde\x1b 9\x02<a\xab\xff\xbbx\xc0\x93\x94\x0e2(\xbf\xa8+\x17\xd2\xff\xaa\xbb5\xfc}\xc1\xd4\x9bYP\xc4\xd0f_\xd70\r\xd5D\x0cD\xe0\x9f\x80\xdd]\x1f\xa1\x19+B\xc6;\xbf.\xad\xe7\xe4\xbe\xea\x19:\xd9\x93N\xc0\xbd_1\xb6\xf1gE<8|^\xbb\x9aG\xf3\xde\xde\x07\xe1?\xb0dY)\xb6U-K\x0f\xd9\xe4\xf9m\xe0)\xcd1\xf9e<\xf4 <\xc4\xf8)\xe7\x9b\x9e\x08\x11\x86&\xca^\x1fuy\xbd\xdb h\xc4\xb8\xa3\xe4\x9e6\xe9,1\xbdCK>68z\xe1\x1f\xac\xf7sSqi{\xeb\x16G:\xc9\xf1\xa9`>C\xae\x97\x01\xac\x1d\x16\x03\xedX\x15ei\xf9\xd1Ik\xa3\x1dm\xf0~I\xad\xf1c\x8c\xaa\x06\xc4\xb7\xa5\x94\xc7\x80\x9c\x9d\x9e\xf5i\xae\xa3\x18\xa4<\xbb;\x82G\xa2p\xeel\x16Q\xe3\xe7\xb6n\x07\xfb\xa7\x89\xc4\xd4\xc7)\x0e\x05\x82\xd8\x86V(AI\xdf\xdf1j^\xd1z\x1c\x06\x8c\xde\x04B\xd3\xf3\xe2-\xbb)C\x8a=\xa6\xfcs2(5~8\x1b\xb6>\x12\xad\x1c\x82I\xf9\xf2:\x15K}M(\x9an\x1e\x06`\xa1\x8b\x9d\xe8\xe5\xcfOy0RU\xdbho\x02\xa0\xd6\xdc\xcb$\x0c\x81\x10\xfav.*\xf4\xccm\x83\xfcIKN\xac\x01/\xa6)\xd9V9\x13\x84\xfe\x97\xc9\x1dLvZE=\x14\x07N\x0c\x8e\x18\x98\xc3\xa8\x07J\xc7_d\x91\xa9\xa1\xdaNu\x9b\xa3>\xc3\x0b\xac\x17G\xe69$\xce0>\x86R\xc3\xce\x970\x85B\x88\x0b\x14\xc1\x86-jP\xb7\x180ao\xa5\xc4\xeb\x98$\xa5x\xbf\xf4\xa6\x1b\xb6\\rV\xfaDnBP\x07\xd7|\xed$t\x9at\x93P\xa1\x18<-^!5nA8x\x8f\x11\xb30(>\xa95\xf2Q\xda-\xdfW\x19\xbb\xefe\x92\x0e\xc0X\x05\xd7\x93\xd2\xfc\xa5\xc2]}\xeb\x01\x83\xd4-\xb4\x0e\xd8aa\xf5P\xb9\xda\xae6.\xcc;v\xf1c}\xad\x15\xdd\xa3\xc82\x08/\xd7|+\xbe\xcf\x85\xc5\xc7\xda\xa9\xf7%R\xc2\xba\xbe\xea\xf9=\x8e-\x04\x03p\n\xb4\x0b@(\x85\xa9\xd9\x04\xf1\x95\xdd`\xef5\xd6`\xdf\xc5\xa7\xa3\xf1\x9a\xe1{\x97\xa9E1\xc0\x9d\x9b\x16)\xf6\xa1X\xc1\xca\xc10}4\x0f\x9c\xdd\xa8\x86\x19\x89V\xec\xdf\x86\x07\x0b2Q\xe4\x0f\xb2\x83Vx{r\x8fs~/\xc5\xc9"\xd3\xa8\xbd\x82Yw\xa5,:T\xef\xf0A\x07\x8d?\xdcn\x94=\x1ez+\xde\x1d\xcd7\x98&^S\xa720b\xaa1h\xe9/_=\xed^\xf2c\xf1\x97y\x9b\xf2\xfd\xb4Dx\\\xeb~\xb3NTu\xd8\n\x97\x9cP3\x0f\x0fJ\x93\xea\x1a^\x1b\xbe\xd6l\xfa\xa8\xc2&\xea-\xd7\x83\x04\xdd9\xaa\xc9\x0ei\xcd\xdc^\x13vC\xa1\x002#\xfd\x95\x80\x9b\xdf\xb2\x8b\x81\x81\xc8\xb9m5\x06\x17S\xd7r\xecD@\x07\x05QL\'H\x07=\xce\x08/8/Gd@\xb1>\xa4[\x08K\x89\xa4\xfe\xec=\x11\xd6\x18j_\xbdv\xe8[(\xed\rz\x01\x1f\xe9\xfa\xbb\x1e\xf0\xc2W.{?\xd1j\xc2Yul\x83r\x93\\\x91\xd5\xf5\xfc\x8cH\x8f\xb2\x04I\xe2.\xc1\x90@_\x80\xe1\xf72<\x99\x12\xd7\xc2\xd5\xc7\xbc\xd72\x0f:\xd5\x19\xaduj\x07\t\xd7\x9e~\xec\'\xc8\x91bc\xe7\x91\x9c\xaa(\x12\xce\x03+\x0f\xd2\x92\xe9\xb7ai\xc6\\\xd7\xe28\xb7\x041\xe9\x9f\xf1\x80p\x9f\x06nK\x08\x04\xdc\x8fY\x95(\x17KZ:\xaa\x00\xb9\xb36\xc7]O\xa00\xcd\x0e\x97M5\xf4\x8a\x02\xee.\x8d\xc7u\x9al\xde3B\xd3\x13\x8f\xd0\xe7u\x1cO\x96\x06\xcbK6\xf7\xb7Y-\xccg\t\xca\x8c\x91\xd3\xa5\xff\x8e">\xeb\x7f`\xc5>\xea1\x9c\xedw\x1c!/q|m\xbe\xec\xa0\xe8\xd0[\xbd\x0bL\xd1\xb1\x86,\xdd\x9cf\x92\xf1`\xee\xec\xbb3$\x15\xed\x9b\x83X\x9f\tU\xb0\x83qP\xca\xe4\x8e\xeb\x0b)>\xa1sU;\xd50*\xff:0\x1a\xf3\x92\xbd\xd8`\xe15\xcd\x89<\xf3\xbao[\xce\x07=lCZ\xb0\xe4B}\xf4~\x1f\x18Q\xe0\xf8\x8c\xf8\xb14\xa1\xfc"r\x1e\xefl\x15E\xa1Z\xda~\x0e\xb2\x90\xaeD\x14\x9e\xfc\'\xb8\xbc\x82\xc3VV\xac?\xbbV\x12\xaa\xa4t\x1b3\xc7$\xde\xae[/\x15\xc8\xd9\x0f\xe9=\xaa\'[\xbd^\xaf\x17\x8f\x18!\x18\xbb\xe5-Jgj\x8d/\x97\xf1w\xa6C4!\xa78\x7f\xa9\x98\x10\xf7o\x81\xeb\x8a\x88i\xcd\'\xdf\xec\x92)m\xec(\xe3`\xb7\xc1T\\\x04p\xc0\x9d\xaf\xe1Y\x8aMg*\xbb\xce\xf7\xae:\x9dx\x87\xd3&\'\xb1\xbb\xd6\\\x8c\x86x\xb3d*w;\x9b?\xc1\xf5\x95\xe4r3\xb4r\x99Z\x08\x83\xd1(\x1d\x9f\xa9\ne\x10\xe2\x1b57\xa2u\x01S\x19\xa2\x99CD,,\xef:\xb1\xd3\x97f\xe1Zv\xd4\xff\xe8AZ\x83\xc2\xe2p8\xb9\x11a\xfc\xef\xe3G\xb3\xe2\xc1\xb4\\\x1b]\x03<\x18\xcd\x04H\xc0O\xd0,H\xce\x9eW\x8dZ\xdf\xbeRP\xd8\xac\x0c\xfbV\xf9\x90\xa4\xb1\x97\xb7\xa7\xd3\x91\x0c\xc5.[Z/\xa8\xc6v\xe5\x0b\x17\xfd\xe1\x9f\xcf\x07~P\x1bh\xd5\x08L\xa7&\x8ag;g\xc3pw\x9b\x12:\xc1\xc0g\x92}SJ\xf0\xa0\x89g\xc0\xdf\xbbv+\x05\xf95\x04\xea\xcdJV\xed\xbd\xf8?n()\xc6\xa3\x1b\xa2\xdb\xba{\xe0vL\x1f\xc8<\xe1\xbf!\xd4\x04P\xb6\xd2\xaf\x8e\xa1X\xf4\xc3\x8c\x04)D\xcd\x9b\xbfGi\xc3\x10\xbb1eP\x19\'s6\xe9\xf6+?O\xa4^w\xf91.\t\x06\\\xb30r\xab.\xc3\x97*a\xed\xd8\xd0\xd2\x9fA\x8fX=\xbdD\x10\xf3<lIc\x07D\xc5i\xf7\x81\xf6Oe\xdd,\x84\xc2[n\xc6q\xcc PY\x015\xbcv\xb1l\x86\xa3\xb4\x9525\x15G\xce\xfe;\xec\xf0\xeeZ\xc5\xce\x8a\x81\xe0"y\x94\xa1B\x97b@\x17B)\x88\xd2\x7f\x8b\x04\xb4<\x030p\xfeq\x02\xcb\xf5o\x19\xaf\xca\xbbx\xe9\x90)\xf4\x84\xa3\x06\x93\x9bd\xfe\x17\xd9>MqY}\x07\xa5!\x92\x1ezo\xd7\x03\xa2\x0e\x00L\x9b\xf8\x88\x019\xd7\xa2e\'\xd4\xd5\x13Oq\x84~\xc3J-\\{\xfe#\xffU\xb41k\xf5\xecX\x9b\x16t\xe9b5\x10\x98\x8d5\x90\xffBD\xf4\x1d\xcd\xe2\xf3Q\xfc\x9c\xec{\xe8[\xccOgK6l\x0b}u\xcd\xc5 \xcf\xb6\xdcGJ!\xb7\\~\xa2\x9b\xe4\x0ez\r\'q\xfa\xeb\xdaz5b\xca\xd6[\xb3\x12tt\xb6}\xb6K\x16\x9af4\xec\x1c\x00U\x16\x9f\xc1\xe1\x9f\x95\x80\xff\x06\x9d\xdew\xb0\xc5\xec\x01+\xeb4\xe1\x86\xbcb\xa4!\xa7i\xc4K\xd1\x17\x16Fd\xd0\xf9\xfe\xaf+\x17z\xcb`\xb8\xf0J\x84`\xe2\xd1\xd6$[\xb3\xa0Z\xad\xec\x02\xd7H\x94\xef\x02\xda\xef.\x83o\x00\xe5\xb8\xd4f\xd2\x85\xfa\xfc\xb09\xf6nD\x95\x12\x9e\xca\x04\xd2\xce\x18\x14l\xfaP\xe5\xe5:\xc7\xc4\xa5\xec\x9f\x95\xb3\xbd3\x06\x06\xb5k?\x04\xb8\xbe\x05=a\xbfNj#Hm\xbep\xfb0\xce\xb35\xf4\x8c\x12H\xa9\xd0K\xfeQW\x1c6\xbd\x19\x19\x0c5\xd8\xf7\x95\xab\xdf9q`?\xe2l\xf2\x12\x992le@,a\x1f\xf9\xa8;\xaa\xab\x9b\x1c\xa4\t\x830.\xeb\x96"f[B\xa4\xda\xc3\xdb\x878\x06\xd4\x06\xdd\xbe\x10<\xc8\t(\xbd\xf0\x84\xb8\xb3#X\x96\xfc\xfe\x95}3\xd6\xceo=\xbd\x9b^\xe1^\xe9\x86\xab\x93B"\xef.\xf6 \xb9\x196\xf4\xa1\xb2\x8a\xbc\x11%\xd09\x0b\xe08 \x1d\xfa8\x08\xf3\xdfa\xf7\x82\xb6D\xba\xf1\xb5\x97\x0ef(uUCy\x1a2\xc3gl\xf0\x1c\x80\xc6\xeao\xcd3\x19\x08\x10<@\x8a\x92\x9b\xe2\x05Y\xc8\x92]\x99\xc9\x82Lo}\x9b\xb48p\x85\xf8W\xe2\xf9\xdf\x0f_.\xa7_{\x9b\xbd\xf5_\x0eS*\xa6\xf5\x99\xdc\x1fg\xa2\xfdRC\xd0\xac\x13IXtL\xf3\xd8fx\xe1OI-\xd1\xd1Y\xb6\xba\xc9,\xda\xffPAl\xa1\x87\xc9\x06\x86\xc6\xa3\xdf\x96\x87\xc9V\xbfASK\xa7\x1b\xbdb C+\x9f\x15\x8c\xca\x0b\x1d+\x1c\xd4`\xe2z\x07}\xcd.k\xdb\x86\x83\x86\xa7\xef\xefJ\xa6\x00\x80\x1f}\r\x0c\xafP\xc9\x05\xc5\xb4&\xfe\x87\xf8\xf8+\xd7<\n5a7w-\xe4\xc8\xa9%K\xdd\xd9\xe7\x1a\x9b\xd6\x08Z\'8C\x16\xf2\xeb\xea=r1\xad\xac\x86\x9a\x1fe\xc8\x9eZ\xe1\xb1\xafF\x98\xefZ\xad\xc1\x15K\xa63=\xcc\xd2\xfbI\x1f\x82&=]\x91g\x11\xd1\xaa\xbb\xd7\xb2h\xcc4\xc6\x8d\xb83\x89\xd3S\t\x8f\xac!{tm >\x84\x86\xe1Loy\xd3\xf9\xac\xe5\x1a\xd9p\xc0\xb5l\xcd\xf801\xa0>m\xb1f\xc92\xefX~>\x8d\xb2\xe8\xdbb20\xbc\xc3\xee\x1eh\xc2-=D\xab\xb8c\n\xf1\x92%\xa8u\x03\x89%B\r\xb4\x9a\xf3\x7f%\xbc\xcb\xe0\x80F\x9b\x1bh\xae\xbe\xc2kG\x1a\xa5\x08\xb3\x9dn8\xb1\xf5\xfd\xc8\xc2-f\x80\xa3\xbaQ\x1b\xd0\x12\xb71\xc4\xe7\xbd;H\x87\xf5\xd8\x87i\x9eUf\x86\x82\x98\xa7\xf5\x9dvK\x15\x08\x81\x06C\xb0\x81<\x85b\xf6F\xf4\x80QcN\x1c\xdf\x89\x1eqU\xcfd\xb6\xfa\x95;\xc6\xcd\xc8s\x94\x97\x1ej\xcf\xd9q\xad\xb0)D\xa7\xc5\xc9}\x97Y\x1fA/^s\x8d\xf2~\x19\x02Ub\x90N\x11\x90_\xd8\x9b\xf0\x98\xe0\x7f\xd6\x1e\x13\xd0\x1d\xda\x143"&\x1d\x8c\xef\xf7\xaa\xe4\x02\xe3\x89\xfc\xc6\x0f\xd2\t\t}\xd5\xe5\xe7E\xdc\x1aiO\xda\xf5\x9f\xf1\x0e\xab,2}\xa7>N\x92\xf6\x15\xdd\xea\xd7d\xc8\xf7\xa5.\xcf\xc8g\x13\x8f\x183\xeb\x05\xce\xf5(\x86\xe5U\xc6%4\x12\xc3\x1c|\xf0\x9dIw\xb4\xc8\xf1\xa7:\xc2\x893\xedW\x1dqL\xb2\xfb\xd8`/\xcf\x9bZb\x13n\xe7\x1aT\x19s;}\xb0\xf4\xd4\to53\xc9\x11 f\xc5\x91\x9aVP\xbd\x10A\xf8\'S\xe3R\xb50\xc4\xae\xbc\xb6\xaaN\xcd8\x9c.^\x9d\x02u\x9b(\x10\x83,\x83\x90\x81\x19\x84\xe4\xebx6=\xea\x7f\xe2\x1c\xc5\xa9:mFNn\x94\x9d\xf2Y\xd8\xcf"k\xdd\xb0\xe68\x03x\xd8\xbdb\x17L\x1a\xdbqJC\xb5\xfe]\xcbY\xb3e\xd3%*71@.\xdf\rgK\x83\xdc\x92\x11l\xbfN4@LG\xdc\xa9>\xa5\xa3\xec\x10\xc2\x8de\x01Z\xb5\xfd\x8a\xe3\x18B\x1c\xea\xf6U\xdb\x91\x13\xe3\xb4\xcf3\x8bi\xb0\x01\xada\xd2+)-\x0ct\xc9\x85\x9c-\xb3\x98T\x1f\xf5\xee\xd12\xa7\xf8\xc53\x81\xd7\xb5\x0e\xdb\x08>\xdde\xd6\x95Z\xbd,\x8fn\x86\xe9\x06e$\x01\x1cP!\xa3\xb2\xe1.\x1b\x98\xad\x1c \x8b\xc9\xafP\xa41\xa1.{\xb2\x12w\x19\xde\xd9\xdb\xdfG\xbd\x02\xa3\xca\xab\xb0E6$\xaa\xe0|\xbe(x\xa6\x1e\\\xa4:\xa5\x16\xdf\xad\x0c\xe0\xb9\xaa\x8b\x06\xc1\xaf\xe3\x96@\xc0\x13\x11r\xabW\x9eh\xe3\xa0;z\xf2"\xf1\x87+EM\x1b}\xb6\xc3\xed\xfc\xdf\xbe\x8e\xeehz\x99K\xfc\xe6\r\x86C,\xcc\xb2\xe2fm\xf04\x81\x1b\xddP\xe0\xc6\xac\xc4\xf5i\x1f\x9d\xfd\xad\xb4\xbef\x9d\x9a\xe44>\xb1W\x8a\xb9\x17]\x81\xab\'[\x1d\x97aR\xdc+\x92\xbc+\xa5\x9d\xc1]uQ\x11\xe1\x87B\x1d\xea]\xa3W\x8c\x9a\x91o3U1t\xc3_!!\x1f\xb6\x92D\x0b\xe3\xba1\x8c*\x81\xa4\n\xc5N_\ni>}@\xebpg\x0f\xa6\xb0\x7f_p3\xaa\x8e$\x86\xad\xf1\xc2D\xccxl&\x8dR\xb4\x0bkas\xac\x84\x8e\xa4\xda\xaba\x1el\xc8\xec\x07\x14\xe8qE\xab\xa8gl\xe3\x00\xb3h\xad\xa9\xc7\xdbA\xac\xb3\x84rZR\xb2\xc7\x19)\x99\x9d\xef\xd7w\x90\x03\xad{A\xf1|E\xf43\x0c\x07\x1c\x82 K5\x98\xe8\x9c\xf0\xf4PS9\x802\xa5pl|w\xe9_\xe7l\to,\x14-&X\xba\x89\x1e\xcf\xfa\x1b\x90A\xaai\x81\xad\x81h\xe9\xef`\xf0\x8c%\x83\x89\xf1B\xe3\xb2\xe8\x84\xa5^\xf2\x93r\xe8\x8b\xe5\x976\x9fP\x89\xe4\xd3\xd1\xe6d]n\xdd\x9d\x0b\xe4zC\x00\xde\t\r\x91\xf9\xaf\xde\xf8\xa8\xbe\xef\x12U\xfd#\x1c\x86Q\xdb\x845\x03pO\xf9mp\x05\x88y\x99~\xf8\xb04T,#\x08\x88\x9eX8\x15\x1e\x0b\x8f\xab\x0c6\xdd\xec\xd4O\xe9bs+\xee\xa4\x12\xf3Jd\x8c\xb7+2\xe0\xa9L\x91@P@E\xcb1\x00\xde\x9a3{\xcb^;\xc3\xa3\x05[s\xd5\x8a\xf2\xc4?a\xdf\x9e\xbc\xb4\\csQ\xb1H\x1d\x99\x92\xdb3;\xb9\xe2\x1e3\x13\x9e_\xe0s\xe8\x97\x07\xc7\xe5H\xb7\x0c"\xf1j\x9e\xb6vF\xcc\x8f\xf8!*\xc7\t\xb8_\xf9\xed#l\xd8\xf6\xb4\xba \x19\xb5\x99)4c|m\xf3\xf6\x0f\xc3\x7f\xc8jH\xa8\x04N\xeb\xe9\x03\xf5\x91U\xfb\x93\xd8Z{\x9f\xe2\xc3\xe9r~B\\]\xbeAy\xa8wR\xa74%\xa6\x00\x1b\xce\xd6F\xf7\xad\x05\xdc\t\xb3\x91\xdb\xf3 \xb7\r\xd3\xaeM"\xfc\xee\xcdUI\xb7c\xc2E\xa1\xae\x7f\xc7\x15P\xe1\x0c\xe3\x04\xbc\x1es\xf1\xae\xb1\xe2x\xc5$\xf7\xc7\\\n\xf8\xac\x1ew\x8c7\xa8l0\xff\x9b8\x1a\x91\x00{\x1e\xf6\xe9u\xc7\xe7\x1d\\fvp\xba\xc1Z;\x9fj\x1bW\xadm\x8d\xe9\xe2\xf5\xcadn\x8f\x93/\xb0B\xba\xe7\xf6\xa3\xbcD\xb0\x92\xdaVTH@\xa4\x1b["\xc46v\x9b\xea\x1c\'\xd9M\xdf\xd1\x16f\x84Y\xfc\xb9\x81\xb5P&\x8dl\x8e\xc4M\xe5\xae\xd8\x18Y\xf2<C\xa9\x9e+\tc\xadg\x0b3u\'m+\xca\xb1Oo4\xe1n0\xa4:\xf3\xa1\xf0\xaf\xe1G5\xfa)\x84%\xebfe\x0fad\x97\xc3\x9fyx\x9b1<\x80d\x94+\x02\x15Ip$#q\xf12P\xc2\xcd\xfcb<\xe9\xa6\xee\x8f\x81\x9c\xd4@\x1c\'74\\\xb4\xe0|\x1f~Tj\xa6\x86"\x07zX\xa4\xe7\xf8\xde\x13\xa3%$\xe7\x9c\x18\xc54\x94\xe5H9\xccJ\xd7$\xc4\xad\x89DFl\x98\xbd}\x9a\x88\xe1\xd2c\x16\xf0I\x9f\xcdk\xea\xa2\x0f\x1b\xa8\xbd\x18#\x9f\xa4\xf5Sh4\x97\x05qpE*\xbf\x0ck$\x91\x80A\xc0\ti\x88\xc2}\xd9\xa5\xe68]\x90\x0b\x1f"E#\xfe.\xa3V\xfc`\x18,\x9ch9\x1e\xcfY.\xd8\xeb+\xff8\xbb^\xe4\xe9Mu\x98\x8f\xbf\x0f\xd2\xdbe6G\xb6\xd4\xed\x1a\xe4\tZT\x07K\xee\xdd\x91\xb8;/g\x13\xb8 \xb8\x0ceXx\xb9\x05r\xb3y\xac\xe4sH\xc6z\x1d{\x82w\x97\xfe~\xd8\x8a|\x1f\x8b\xb8\xa0I\xe4m!\x0f`}$?x\xd9r\xa2\xc93\x9e4\x95l\x15\x1f\xbe\xb3\x14\x04[t\x90P\x12v=)>,~[\xfd\xb6\xac>5\xb9\xc2\xeb\xf4Y\xde\xa3x\xcdK\x9d\xec\x9c\x9e\x1c&k01(\x9a\xde}\xf2\xa7\x02:?.\x86d\xe6\xa1\x8dX\xfd\xef\x0e\x9a\xa7\xd5\xad\x18OZ\xbf\xbb\xfeI\x98\x03M\x07\x87\xb1\x9d6q\xc5N\x7fjF\x89\xcdO5\xaa\xe6\xeb\xeaR\xc3O\x9a\x18\x8f\x07\xf85y\xa7w\xf0{\x1eCp\x88d,\xb4\x0f\x88D\x92]3\xa9\xc4\xb9\x03\x9c\xf9\xe5\xbfU\xc3w.*\xc4\x05b\\\x1d\xd4\x9f\xe7\xe1\xb2)\xf0ZQ\xb4\xd5\rtLu\x84\xf1\x19\t\x01Ti58L\xc1@\xe5S\xbae\xed\xa5\x8frbN\xe7v\xc7\xdfP\xa5\xd5A\x91g9%\xb1\xdc\x8c\xd7\x02\xeb\xfb\x01\xf4\xc4\x9a\x02\xa3\r\xd8L\x1b\x04\xa3\xf9+7\xc7oz\xf9Z\xf1\x12}\x8c\xd2\xff*\x88\xcdE,\x026#\x86\xeb\x80J;\xa9\x9b\x90\xda`\xfan\xf1\xe70z)\xf0\xa1\xf1\xb4\xa0\xdd8\xc2\xf4SV\xf5a\x19\xe8&\xc8\xea\xfdr\xae\xf5W\xe3X.\xff\xd2\x06\xfd.\x03\xad\x99O\xeb\xc5&\xc4?\xb3;\xdbg\xc6\x9d\xfaQ\xc0"\xd3\x95U\xaf\xb1\xf2\xc2/\xbf[N\x19\x91$k{\x1b\x8d\xf8\xe4KF\x90\xffh\xe7\x13l\xe8 S\xa2\xdaS/X\x7f0JJ\x80\xdd\x9a\x8a\xe0WF\x1eh{\x89\x18|\x03\xfc\x13\xc7\x9f\n\xbd\xca\xc5\x8f?\x9c\xf9L\xdc@\x97\xc0\x1e\xdf\xa8!g\x01H\xd4\xc2\x10q\xd0)u*\xc0cb\xb5\x81\x19\x1b8\xa6\x01\x01@\xea\xa8\xebFU\xc3~\xd2\xb3\xf72\xda\x9e\xa3{\xefG\xddZ\x83X\xe7\x833\x83\xb1s:AO\x0e\xf3\xe4\xf3U},\xc2\xa3:\xc1D\x0b\x03\x954\xb3\xa4\xd1s\x84\x16m\x89\xf22\x8b\xbc\x077B\xa1\xc7\x1ey\xf6\x14\x1fbc\xed5\x001\x9a}\xaeg\xfb\x05w\xea\xc3\xb91\xa2\xd9K\xaf\xf7\xc6z\xb4"\x9a\xf3\x86]c&\xb5}]\xa0V\xca\x9b\x97\\\x18\xaco\x94\x00\xd64{\xaaT6mQ\x93\x1e.z0j\x83\x1e\x81\x10\xc8\xee\xe3\'\xd7Kz\xf4A<mP\x1c\xfb`+\xeb\xd1\xeab\x1b\xfe\x1f\x0b\x00^\x1dz\x91\xa7\xa9\xe6k\xc4\xdb\xa8\xf0\x8f\x00S\xcc\xdf<\xa2i\xa8\xee\xcc\xe1\xc5\xeb\x07\xcb/k\x11\x15\xd3G0bSxZ\x92\xa8\xc4d\xfb\x8c\x90\xc5\\Y~\x01\xad\n!jD\x98#EA\xa2\x01!\xec\xf3\xde\xd8#}\x17\x98\x1a\xd6\xb74\xd0\xb1\xf9*\xe0\x0c\xb4h\xa9\xc4L\xb9\xa4\xce\xc9\x1e\x1e\xc2j\xe3\xac\\>\x9f\x7fe\x97\x93%\x8foF\xfe]\x05;\x13\xc8\xc4\x85\x17\x8c`\xa0\x1e\xf8\xc4\xcf~\xd7%<-}\xf8\xaf\xa8\xcb\xfd\xa4\xc7\xc4Sz!T[\xa2\x8c\xfd\xc8+\x87\xc6\x1e\x98\xe9_\x14\xf1N\xed`@\x037\xae\xb1\xb2\xf5H\xf5r\xaf\x0e]q\xeaR\xa55AW\x97\xf2XF(\xee\xad\xc1\xd6S#\xc3\xd2.\x0eH\'\x9c/jtW\xe3\xc7P>\x94\xcb\xabP\x13\xefe\'p\x99N\\G@\xd38\x18P#"\n)=r\xd1|\x159\xad\xf8\x83\x16\x02\xdd\r\x18\x1eu\xc4qH\xd7\xbb\xffe\xd6\xdd\xf5;7\x86\xfdd\x05\xa7\x0137r\x88P\xdaS\x96\xb3\x08OR\xbe)]\xfb\x95R(\xfe\'\x9e\x0fK\xf7O\x8e\xce\x1e\xdb\x96m!\x7f\xc5\x1e\x0fh{q\xe2J\xb9\xeaA\x12\xec<\x0b\x9d\xa3(\xee\xfe\x8f\x8e\x10\xd9*\xeb\xaa\x17^\xcf\xcd\xa0\xe2E\xd3\x95\x15\xa7\x19\x07-\xb5k\xc9"\xe1`y\xce\xe6\xd3z&\x8c8lA\xb1\x08\xd8xkcuP\xdc\xd4\xc6\x9d&\xfd\xa8Mg\x1b\xc7p|\xd5\x91O\x82\xd0p\x96\xebQ1%\xc4\x80\x88=B\xf7\xe6\x1cV\xa6\x80i\xa8\xf01KG\xff\xd0j\x04\x1e!R\n \x90\xdeJ\xd3\xa6\x8c1\xe4\\k\xdeI\r\x1d\x02\x81\xbf\x92\x0e\xd1c\xbf\x19M\xc8\x19:C\n\x8d|\xe6\xf8Z\x074\xf3<\x8c\x7fFH\xc8\xbb\xe4\xbd\x05\x9f\xea\xcf3\xc8,\xbf\xe7T~\x04\x8bcv\xadA:K\x82\x90\x06\xc1\xc2\x00`-#3\xdf\x96\x17Ihi\xf6D\x01C\xda\x9e\ta\xa5\xf8\x84\x96]\xfa<4H\x18\xe2\xca\x97\xb04\tTP\xad\x91L\xb3n>\x06\x94H\xd8\x84\x8c\xfb\xf2(\xc3\xd3\xebX,\xc4\xff\xa2>\x96!\x91*Y_\xa2\x94_\xa7\xc9o\x08\xa3_)\xff6T\x90O\xad\x9e\x8dM\xd9c8\x9c\x03\x8d\\\xafnN^\xebO\x97\x8em\xe1\xdc\xac\xa8\xce:\xb3\xd0\x9b\x8d\x16\x13:(t\x05\x00\x16\xfa\xe2Q\xa5\x924\xa0\x1b\x04,\'i\x17\xee{\x17\x1cXw>\xb0\xff\xb5\xb1\xab\x0fW\xac\xe8\x0cg%+\xa3\xb4\x17.\xbb\xe5J\x02L\x03\xdf\x9dg\x12\x03\x10w2\x8d\x08.\xdf\xee5\x03\xd3\xacuW~\nt\n\xf3\xd9\xc1<\x16\xfc8m\t\x9e\xab\x13D\xb4\xc4\xd3~!\xa12\x19\x12}\xb0\xb93\xfd\xd7\xe4\x80jQ\xd3U\xd8\x11F2L\xc0?3\xc1\x18w\x84\xa8\xc8<\\\xcd\x01\xbbBk\x90>\x96\x0f\xd9\xdd\xcf\xa6@\x05\x94\xb2\xc1\x9f\xbe\x98yk\xf8W,6\x16\xe6tb\x1f\xe0\x99;\x8c\xd0\xd2\xdd\x9e\x04\xc5\x15.\x03*\x01\xc5\xeay\xc3\x1c\xab\xcd\x0e\x91\x8b\xca\x0ba\x0f\x81\x9f\xc9\x15,\xbf\xd5\x8f\xad\xd0\xf3\x1a\x1cG\x98\xac:T\xee\n\xd0Q\x88\xcf\xeb\xce\x1a\x8b\x13sq\xd8\xa2\xcau8\x9a\x0c\xd9\xfclu\xc7\xdd\x92\x87@\x9b\xac\xb9\xc0\xf3m\xd9\xbaX\x82[d\xe3Q<\xb4\xf9U\xccVN\x08w`B\x179\xfb\x11p\x9eIf\xafn\x1bY\xf6\\\xf3F\x85\xc6\xf1\xb8\xbc\xdcb\xe2\xdd\x87|\xff2\xd2\xe8fj\xa0\xb0e\x11R\x01\xb7\t\xd7zB\x86Q\xfe\x8fK\xc6\xfb\xe1\x9a\x1a\x90\xf5\x92Fc\xe9u9\'\x85/\xc8\x80e\xf1\xe3\t\x8b\xbf\x97\xa8\xe2\xd9\x99\x05\xb2p\xa1\x8c\x9c\xfbA\x06\xf1]\xf2\xef2\xbd\x8f\x1bG\xb7;\xf6\x05)\xb6\xe6\xd5!.\xedr\xcc^\xe0\x80\x93h\xa6\'!\xfa\xb1\x15\xcek\xcdp\xc2\x88\xf1\x92\xc8\xeag7\x11\xdf\n\x8f}\x92^1\xa5\x835\xc3i\x94.\x95\x90\xfb\xd0\x1az\x8aN\xfe\x12$\xc5\x8bT:c\xcd\xa6\xc56\x85e2v!\xa1R\x08\xb0\xad\xdfZX\xea\xcb\x8c4\xad%\xafI\xdd^\xa4\x8c\x01sW\xb8\x8e\xb0c\xf9\x807\x7fo\x8e\x9c\x08%\x9dV$\x9b\xcd\xb4\xfb\x01OY3\xf3\x03\x00\x12\xe7\xa0\xf1Ln<~\xc5N\x85\x10\xf2\xa6\xc1NF\x7f\xb9&R\x16M8\xf5\x92\xad\xfd_Ql\xea\x14\x04\x96\xe8\xad\xe1\x8e\xa8\xcdCA\xf72\xfb\xf52\xb0\x06\xa7\x84w\xee\xa8u\x1a>\xa1\xbe\xe7\x90\x1c99\x04[-\xe5\xaeU*\xf4\x81\xe5\x90e.\xe7\x15\xdd9\x01\x0c\x98\x84\x8d\x87v\x1f\'\xfb\xa3\x88w_!\x93\xae\x08$\'\xbe\x98\x95\n\xbeRS\xedrhEz\xd2<\xdb\xf4\xd2\x05\r\x8e\xb3B\xa1\x9d\xff\xd5\x0e\x9e\x176\x13\xd6n\xa2O\\\xb6m~\xf7l\xb0,\xcc\xffC\xa1\x90G\xe7\xb8\x1b2\xd7+\x81k\x0f\xadp=C\x9d\xf2\x8fP\xd9ist\x99\x97\xb5\xa2^\xcd\xff\x15\x9c"\x9a\nD\xd46\x1c\xa6\xbe2S\xe34s\xb2E\xe4\xeb\xf0\x0f\xbf@\xfd\x032\xd4\xfb\xf8\xeb\xceaY(\xfeG[>\x97z[\x96h.F\xdb\x9dP\xdbB\xee\xe0\xae\xe7\xc3d|t\xbe\x81\xdf\xd5#\xb0\xf6\xd52\x14o\xfaP{\xc1.\x88\x95\x82\xd8\x05c\xe7\x9a\xf7\x8dS\xb0a\xfe+\xeah\x99\xd4\xa7\x18\x99:$\xd5\x88r\x9f\x86\xe9Zj\x9a\xda\x84\x99\\\xd6[\x9e\xd3z\xc8\xf7\xad|\xf8\x1a\x18\x08vs \xdc\x92\xc4\xa2\x91\x8f\xbe\x0f\x88\x83m\xd1\xbd\x92\x9b\xb4\xd9\xc4W\xce0\x11Y}\xbf \xcf\xa1$\x96\x11\xf6 O\'\x08\xfa\x9ei\xc4\xb8?\xf0\x9ct\x02M\x9c\xa5\x03\xc8:\xb1{\x82\x86\xd1[\xeb%Kl\x8e\x94\x06\xb3&A\x9bL\xb7mlU\xf6C\x05\x10\\G\xfdV\n\xba\xe3i{\x1fu\x91\x9f\xa2|l+\xc4\x99d\x08\xd70\xa3l\xc6\xa9\xc8\xa0\x1a\xd7\xd8\xb6\x1d`\xbb5\xaf\xa6\xbeLO\x94\x0e\x8a\xd9<\xdfXW\xf0#\x14>a\xf9\x82\x89\x8d\xf5\xfb\xb6\x01\xab\xa8\xa8\xd3\x8cR\x8f\xed*\xd8#k\xde\x12\x06\x8a\xeb|w\xa1q&W\x15\xb1.\x89n\x12i<\xb5\xceO\xcdX\xaf\xb0V\x7f\x1a\x7fN\xb6\xf2k~\xd9\x90\x00\xde\x84\x11\x04\xe2W\x80\xa1N\xfd\xb6\xf8x0\x11\x94 \xb5\x1e\x8c\xfb\xee\x13\xc6?2\xb6#\xd2v4\x15\xf4\xec^\xf6lO\xe4\xc3<\x88w\xa8\xabC\xe3\x17\xa6Pb\x12K\x01\x96\xbe\xb30X)\x19\x88\xa8\xe2\xd1\xe3\xcfd:\x15v\xd5\x00H\xab\xe9\xdez\x14\xd2\x87\xc0\xe1\x9bM2bvk\xc9\x88\xa3\xc9\xdc1Y \x9e\xfb\x9c7\xbf5\xe0\xed\xc6\x84o\xef5t\xd2\xd2\xfb3\xc0K\xd2\xb1\xedx4}O\x05\xe6\xfe\xc6V3N\x8c\x0f\xfe\xd2\xd5\x8b}&\xbd\xda\x7f9\x83\x98\x1f\xea\xb9O\x08.\x17\x9c)\x1cy\xa4$\x81\x1b\x10\x9a\xc8\xe6\x1f\x8f\xdf]"\x01I\xec\xf5J\\t/6\xa2\xc1\x92\xee\xcc\x95\xc0\xde8}\xee>\xa1\x1c\x87@e\xc1\x1c\xaed\xd87\xe9x\x07\xdc\xf1\x7fB\xa6*\x17\xc9~\xdaH\xa5\x07m\xa0\x97\xf7\x04\x0b(2\xa0\x9f\xcd\x13\xd5\x02\x96\x07\xc2q\x80gU\x051\xb4\\\xcf\n\x87W\xadb!H%;\xa3\xf1A\x01D\x14WWz=\\\xde\\\x13\xa1M\x0c\x04\x98\xd1\xaf\xfd\x0e\x9eLl\xcd^\xaf\xa5KZ\xea\x85+\xc9\xd7\x04\xa0v\xb6\xfb\xe0=\xb5\x0e\xe3\x1e\x0b\x1b\xab\xf6\x1f\xe3%wk\n\xb3\x1f\x86\x9cp\xe9\x8f\xc8-\xb0\x9b5r\xe1\x12\rt\x9b\'*\x15E:\x91y\x0bK\xba\xa5\xa7\x03\xaaB\x01\x88|\x0f"\x96\xac\x0eFe\x87\x9d\x16\xc0bT\x91WDL\xb9\x8e\xae\'\xbd\x00\xc2Q\x10\xa4\\\xdf7\xab\xe4\x1a\x15\xec\xe2\x15\x9b:\xd1e\x04\x16\xf5E\xea\xe7\xf4\x90\xf6s~\xa8U?\x0c\xa9\xfcg\xad\xbcRD\'>\xc5\xf5b\xa4@\xde\xa1K\x95K1\xc4\xdf\x9e\xf9\xecJ3\xd7\x05\x12\x05\x90\xa5\xa9`/\xee\xa1\xb7|a\xb5,\xa2\\I\xf2\xb6\x1b\x92\xf4\x02\x0e\xe6\xe7V4R\xf3g\xc05f\xbe\x82E\xf6[\xd1\xf9\nE\x95\x11q=\x87\xa8\x15\x17\x19\xd6.\x90\x19U\x17\xcc\xb3\xd616\x0e\xe0zQ\xa4xRC\xd7S\xc9*\xca\xad\r\xe7\x0c[\xfb\xe95\xf3\x83sw\xb8}\xcc\xdctxK\xde\x92\x7f\x0c\x1e=\xb4}7\x00(&\x04\tQ\x16N\xce\\\x04\x87\xca\n\x04xD?\x93\x91\xf8\x03\xfa\xaf\x1a\xcaiM\xce\x96\xa7\xcb\xf2\xad\x1fz\xb8\xf7\xaei\xfc\x0c\xa9o`\xa0"\xd3i\x05\xb6\xf2\xb0 \x80J\x02q\xb3\x05F\xed\x9ce]\xf0?\x91wp>AR3\\\xa5.\xc0\xbf\xf7\xc3\xbc\x12\xcc\xbe\xe6\x0b\xf1\xc2\xf7s\xfb\xd7=\x18\x8a\xe6f\xccR\xb0]\xf7\xf7\xa7\xb6\xd0$F\x0e\x01TX\x10vP\x816\xf9\xf9\xa2\xf9\x05\xb6\x11\xe6w\xff\xcdq\x02\x9e\xe7\x7f\x8d\xac\x18%\x18\x15\x0f=\x9d5\xe3\xed\xd9\xe3`H\xf9\xe0S\xe8\xd5\x91Ca\x9f\xde\xb3\xa92,\xab\x87\xc7\x8e\xd7\xbaX\'\xaa\xf3\xcd(\x04\xbe6E\xaeI\xb2\x12D\xa3V\xa9\x14_2\xf9\xe9S\xd5E\xb8P\xbdcn\x13R>8\x7f\xa5\xc2\x96\x0e\xea\x90}\xceY\x8d\x8a\x11lhH\xd2*\xa0\xbf\xef\xa4~\xa6T\x8a\xad\xcd=\x93-\x87\x02.\xc6\x8b\xa0\x9d<\xe8\xcf\xa4\xbfz\xbb\xdc\x06\x0eW\xeaf\xef\x1aw`\xc2\x8d\x06\x118g\x83B\xda\x99\x07\x90\x18TNM\x9b\xe4\x1a\x1a$W@\x95\x90\xe0Y;\x1c\x15[\x02\x11\xa8rR\xcf\x10\xf5\x00Ok\x10<\x8bkOV\xe7\x00\x90\x92\x85{bXn\xf2\xb9Q\xb6s\n\xcaw\x15:U\xc2\xab\xfe=\x0c!/\xdb\x13;\xff\xb93\xc7VL\xb5Nt\xfb\xa0\x104\xf7!F\xc7\xc6G\xa1\xcbWW\x16\x00\x1b\x84\x0f*x|\x9bQ\x175=94\xbb\xb2\x00\xd2\xab&\xbc\xcf\x8dUn\xdc\xd8\xd0\xe3n\x19`cd.\xe6oq\xce_\xf9N\xack\x03\xb8\xf9\xfb\xfe\xdd\xc16\x9b\x94\xfb\xb3D[\xfel\x9b1O:\x19\xda6\xa5~q\x173q\x1a\xd5\xe8\xa0\xf1\x0fK\xce\xf0\x81\xcd\x94w\x95g\xe7\xae\\\x00\xfbe\x9d $\x01\xf5-zk\x98\x06\x8b7\\\x82+]=\x1a\xfaX2\xaa\x07e\xc2#\xd3\xbd\xf8\x9d\x15\x06\xbb\xc6\x85\xe1\xe3>AQ\xcd\xf9\xb1\x856\xeaT\xaa\xaa^M9\xfbJ/9\x9e\tT\xf2\x8f\x05\xd3*X\xe7jFU\xef|\xc0?z\xc2\xd9\xc7FMo\xec\x7f$\x0b\x18\xc1\x96\xf8z@\xbe\x9c\x02\xd9\x12\xf9.\x11{\x84zc\xb5P\x1a9Z\xb7\x1f\x87\xde\x1c\xd98\x0e\x81J\xa7[\xe6\xe8\xe2\x95\x175\x03?\xd9\xcd\x19LPa2\xf2\'\x12\xcbs1\xe7h\xb9\x9d\x9a\x98\xbdc?1{O\r\xce\xe1\xe3x\x80\x8b\x9b\x02\x9c\xfe\x1e~\x1f\xc6q\xe01.\x7f\xfb\xcb\xd5f\xd2\xcc\xb8\xb9\x83\x1f\xfb\x19pc \xc6\xefC\xf9?GL\x05f\xa1\xfd\x92\xe4e\xbf\xfb&\xc9\x83T\x87\xa5+T\x9bF\x0f\x991Ja7m\x8f\n0a\x19;\x98\xc4\xdf$4\xe6\xddG\xe0\xe0f\xf9Rj\x90\xac\x0by\xad\xe3\xe4\xa7\xe5\x05\t";\x85\xff*\x03\x89#L\xe0\x08\x16\x8aP*\x9a\xe1\xc7\xc7\x1eQ\x95\xbf\xa7o\x9c`\xdb}$\xb6\x87E\xec\xa9\x8c\x8f\xe5\x19T\x0f\xcc\x98\x84\xef\xbf\x08?Xyd\t\xb2\xb9\x88\x0bY\xc8\xcc\xfb\xc7\xf1Z\xc1\xc5\xce4\xc6\xe5\x8e\xeb\x1er\x12\x9ad\xc7\xa2\xcb\x8d:[\x1c\x13K\x0c\x15f\x95\xd3Ur\xa1\x1c\xfaOY\xff\x93j1\xf7\xa6Z\x83e\x03f\xa4\\\xfe\x9b\x08\xf4=\x94\xe0\x88J\x96\x1d\xfe\xd8\x87\xe1\x01u\xf3\xae\xbaL\xa4\xaa\x00\x91v\xb6\x15={d\x17\xcd\n\xe2\xbc\xd5\xf2`w\xbe\xa9\xc6!\xe2\x1fh,\xda\xf3\xc2\xef\xb1\x8bJu\xa9S\x0cl\xa1]\x8b\xb4%"y\xc4\x1f$1O\xf4.[\xed\xa1\xaf\xd6\xfd\xa1\xeas`z\xf4\xf6\xfc\xd5\x11"*[\x1a\xbdJWm\r;\x9e\x0b\x8a\xd8\xe4\xcex\x92\x17v 8\x84\xda\xa5v\xdd"\x16A(\xc6\xbc]\xc9\xdf\x93C\xb8\x98[\x13\xce"\xd4\xf8\xdd\xe0u\x97Y\xc7\xbe\xdf\xd4\xeaW\xe6\xdd\x9a*\x82\x94\xf5\x07?\xd3\xca\x12}\xb9\xf1\xc4\xc9X\xdf\x89n\x9b]M]\xa1\x95j\xa65,_g\xc60vg\xe9Nz\x00\xc7\x10\xad\xcdb\xc3@7\x10\x9d\x0c\xff\xe1s\x8dt\x95\tYj%\xc3a)\\\x19*O?\xb6H\xde\x07\xd2Q\x93\xfa\xcaZ\xeb\x98\xd3\xb1\x1a\x19\xb2\x8b\xf7\xc6\xe7*\xa0kf\xf6\nP:s>=\xc5\r\x1e\x91\xc6\xb0I\xeb\xf41\xce\x15.f\xe1+\xb0\xc4\xdd_\xc2\xb7c\\=\xa9\xa5\x8d\x88\x14\x88\xed\x0f\xf8\x18\xae\xd5prx5\xe6\x83;\xa9\xcc\xac+S\xb7\xbfq\xfdC\x15y\x94\xfe/F\x9co\xfe}\xafn\x1d\xa1>\xe3o\xe4\xb7\x18C,C\x7f\x1c\x0b\x11,\xf5\xd0\xde\xb4\x8c]Ux>\xcf\xd2\xbf(\xac9g:\x91\xdc\xab\x9bH\xb6+\xe6\x9b\xc3\x1fU\xc6\xda\xdbw&\xf6\x01R3M\xef\x7fKz\x97<xw\xc9L\xb8"\xf6\x9c\x10\x03\x19\x1f\xd2\xdaa\xde\xbc\x80\x1f\x8c<kN\x1d\xfd\xaa\x0eMo\xc6\xb3\x04\xa4\x8c\xb1\x0f\xad|\x86L\xc0\xfd"\x0b\xec[D\xd3{e\x0b\xcd\x92\x8b]\xac\xb5\xffI\xe2g\xee\x04\xcaE\x0b\xd7\x10\xf2\x7f\xb1\x98\xf3\x91\x13\xad\x85\xc8\xd6\xd8\xd1\x10\x93\x80#\x9c\xf1N_\xaf\x98)MN\xaa\x0bV/q#\xb4\xf1P\x84\xa6\x9bq\xf3t\x86\xe64\xa3\xff\x17\x07l8\x99\xf1V!8\xdb\xce\xa3\xd0"\xe7v\x19\xf4i7\x05\x03\x9c\x81\xe1\xe6\xad\xfa\x89i\x89{\xa1\x9f\xca\xcc5\xa00\x1aE\xc3\x80\xf5L\x9c\xaacE\x8cy}\xb9[\x99\x95{\xc4\x12\xb7\xe5\xf8\xae\x94\xab\x96\x8f&\x9dFg\xcb\xb5KJ\xb97\xd7\x03\xf5\xa05[W@\xbd\xc3\x961\x1d\xed\xe7\xe3Z\xf9C\x8a\xb7\xdd\x178\xda&\xf8O\xa0\xd6\xb2\x8bj\x8a\xe9K"I\xf0w\xd5\x86i\xfe.If%K\x122\xb3:\xe2"e\x8ay\x99\x98\x0eD0\x18\xfd\x80\x12\x00\x8c\xa4\x0f\xd8t\x86 \x19\xa6\x0co_\xc6\xce$\x06\x93\xa9\xf1_@\xda\xb3%\xda\x96\x9c\x91\x08_\x9bR\xda\xf6\xd8\x98\xff2\x18\xe2\x98\xdb/\xcaB;W\xf4K\xa0!7\x02\xb9\xd7\xe9G\xbc5f\xfe\xa1`\x17\xff\xb2\xf4\xf6\x13\xf9\xe7\x04\x85\x10\x9c\n\xf8\x857\xdd4Q}\xbf<&_\x18\xe0=\xc4|\x91\xaa\xe0\x90k\x8d\xe3\xbf#\xc12\xdf\x01o?\xb0\xa7V\x15g\x9a "\xe0\x06{\xc2\xf2\x85\xc5\x1dC\x18R\n}\xb9\xbd\xdf\xee\xd4\xc2W\x10\x80\xc8\x15\x8d\x8d\xc4\xd7\xb7\x95\xf1\xdf[E@\xfa\xc1\xc4!\x06(4\xc1\xabb\x94y\xbak\xf9Fi\xf9RFP\xe4=\x9c\x8e\xf0q\x95\xbcsi\x00\xb9[\xde\xbbH#\xf6,\x86\x17\xf6BD!V\x89\x188P\x13e6I5\xf60\xbc\n\xde\x1bI\xdd\xf3\xce:\x10\x1d\x99g{\xdf&\xf9\xfd"\xec\x1a\xa4qRb-o\xe8\x88\xc0~\xdb\xb3\xaad\xf2\x8dK\x03%aJ\x96o\xe4\xd5\xcc\x19C\\\x19C\xb3w\x7f\xd8\x93tL~iLd\xe3w2\xb6\xf9W\xf0V\xce:\xd1\xd0\xa4d*\x1a\xbf\xd4\xdb\xb7l\xda\x01\xd2\x0fh\xa8\xb9\xa35\x94\x96\xb3\xb1\x88B\xf1\xc6\x0b\xa8\xdc\xf9\xba~\x9aS\x1e2:\x1b\xeb\xbb\x14\x1c6N6\xdf\x7f\x1b\xb9\x1e\x9b\xaamR\xbfHs_\x92\xd0hE\x03\x80\x04\xe0/\x17\x1a\x08\x01[\xe2\xd0g8Y\xd5\xa1\xa3\xdb+p\xbc\x8c\xf7\xbd\x02\xf4\xcd5\x04\xe2\x186n@\xe1Z\x7f\xdcqP\x9a\x1b{\x1c\x00\x07\xcfz\xec\xf1zW\xa0\x00\xf6\xb0\xd5\xf0\x7f1Jj/\xd6HK0\x0e\xe5\xbbMv\xee\x84z\xacG\xc3\xea\x0b\xaf\xe9\xd6\xcc\xfc\xb5\xe6b\xa0\xf0\xe5\xa9\x8c0Y\xed\xe6\xd0\xfc;\xb9\xa8v\xbc\xd4\x80\xef\x8ePU\xb1P)\xa6\r\t\x137>=yo\xa6\xad\xf7\x9c\xe0*(\xcd\x0e\x9d\xb9\x06\x8b)\x1d\xdc/v\x8d\r_\xa2\xdb\x93\xba\x8e\x15\xb35\xb8\xdf\x0f\xc68\xd3\x80r\xdb\x85\xb6\xfeB{\xe5$\x1a4\xa0%xw\x9a\xb9P\xa6D\x9a\xd5\xa3\x1b\xc5\x8ep\xa9\x9d\xc7{w\xcc\xf3+I\xb9\x97\xfeo\xc6\xa3\x96\xe3M}lq]RK\xce\x80X7/u\xf69\x83\xe5O\xcf\xf1^\xea)\x1f3\t\xb6!\xb8\xfdh[\xd6\xf1\x87\xec\x18\xce(Q\x96`\xa0Z\xe4\xbe\xe5B\xd9\x97m\xbe4\xf5aJ\x867\xe3\xf5\x80XG\x0f\x93\xd1x\xa8n\x9c^\xc4\xe6p\x87\x9a%\x8d\x11K6\xffH\x088\xa3\xbd\xd1\x83\xed\xcdNl\xc75\xe2\xb4\xf1i\x80?+&]>2\xbf6\xf7\xbf\xf6\x02\t\r\xd7yGF\xe82\x94\xe25dP\xe3\x0f\xd1\xc4\x9au\xe1\xc3\x97\x0c\x87\x06V\x15\xf9\xe2gKbE\x18u\xae\xa4\n\xd3##\xaf\xb3\xc1\xe67\xfa\x96\'5\x01\xa7\x02\x8c\\\tB\xb1\x8f\xf9d\xc5>\xd9\x14r\xe9\xb72\x9e^\x93UV\x16\xf4\xc4\x07\xcewC\x08\x14\x9f\xac\xe1\xcc\xeap\x99O\n\xcb\xec\x1c\xb7p\xa6h\xa4\x11\x93\xa5\x1a?\'\x1a\xc3\xb4\x05\x94@\xa0\xd7\x0eh\xf0\xd8\xf6\xe4:\x0cs\x8c\xca\xb5\xd4\x9a\xe5\x060\xdc\xfag\xbeZ\xf6\xea\x1b\xda\x0f\x9f\x0e\xd0\xc9!(\t\xecM\xad3)u\xd7\x96\x13\x01a\x88=\xf4\xb9\x06ya\xdf\xa7V\x9e%\xb0\xc3!\xfd}\[email protected]\x8c[\xc0\xca\x82\\\xb51\x87\xf6\x865\xe9a\xb3\x1cC\x8a\xa0W\xd8m\xee?\x88\x1b\x95\xa7\x8amM+\x7f\x06o_fM\x9b\xb8\xec\xa7\xe3\xd4\xcd\xb9b\xb9\x1c\xdf\xcb\x16ffP.q\xf0\x95%\xcfcB\xf5jPF\xfc\xaes\xa8-?\'f\xa1|eA\xfb\xc4\xff\xe6\x98eO&\x0f\xe5:\x1a\xd8\xd0\xad\x15\x10\x83\x11\xcd\x9d\x0c\xde/\xfd\x0eE\xad\x8b\xcd\xe7\x9fp\xfc\xee4\xdc\xc5\xdf\xeb\x8f\xe6\xc8Z\x7f\x8f=$\xcd\xc7\xe2\xa4Z\xe1\xda\x0c\xd5\x83\x89^\x9cm\xfb\xf2\x19\x92-\ne\xa3[\x01\x02\xc1\xb7\x8d\x94\xab;x\xad\x80)k\xabE\nsNt\x96\x8a\xac-\xa1*\xea\xa5/\xbauS\x8c\t\xd5\xb3\xc8<jQ\xca\xdd6\x14\xbb\xccO$SF\xd8\xc2\x96\xd2\x19\x1e\xed\xd8\xf3\x05\x99\xad\xce\x1f\x88\x9a\x91\x06^\xacp\xde\xccOuV\xb6\xd3|&\x03L\x97\x8cB\x9f\n$"@\xf7\x15\xb7\xb5G]\xf978\xdb\xad\t\x13\n\x9bPa\xc0\xc4\x9aK\xe9\x16%8\xad\x08\x0e\xf9\xb0\xfe\xa1\x95>z\xceI-O^\x17\x8cr\x8b\xfc\xa5\xb7\x18\x8e\x98\xe0\xc4E\x82@\x95\x08is*V1\xca;\x8a\x0b\xe4\xf0U\xf7_vX\xdb|\x99i \xc4\x16z\xa6\xe7U\x1b\x84K\x18O\x03CA\x08\xd88U\x91\xf6\x08$\rW2\xc3\xb6\r"\xe1q\x9f;\x7f\x04Y\xec\x0fY&\x9a]wo\x10\xa9\xab\xbf\xc4\x18\xfew\xf8)\xbc\xcc\x16\xd5^@\xab\xb2T\xaefl1\x91<\x80K@\x0e\x8d\xc6\x15I@\xbc|\xb8F\xfe&\xd8c\rk\xed\xe0.\x90\xf9\x8aU85\'J\xf0\x8fp\xb0\xe0\x95\xf0w\xc2-\xb8-4\xcb\x94\xc5\xaf\xc9i\xf2Y\xe0\xe3\xbeI\x86d\x7f\xb0\xf0\xc6\x10>a\x01\x9d\xb7\xca{\xa6EB2\rog5\xefG\xa86\xc1\xc0$\x81]%\r\xfd\x17\x8c\x88\x86Q9\xae5d\x81\x89\xe6\xcc\x053\xcb_\xc5\xb3Cb\x9bX\xc5X0\xf1\xddc\xb0/\xfa\x028\xa6\xa0\xbbJ\xc8S\xfe\xb6\xf2\xef \x11\xe7\xa3G\xe4\xee5\x93\x1bL\x9cp\x1b\xe4q\t\x1d>\xa3\xa4t*\xac\xfdaP\xb3\x18\xf3\xe4_\xa9d9x\x10\x949\xa2\xf7\xb4\xf8\x1e\xae\x18\x1eAq\xf8\xfc\\\xdel\xb8\x9cov\xbf\xaad\xbc\xe5\xd3\x00\x17j\x0ca_\xa4\x8d\x8b\x818@\xd9N<\'\xe8\xab\x0c-\xb3\xbb\xcf"\xab\xda\x96<Y\xaff\ra\xd1\xa3\x86\xc3G~k\xfd.\x01\x05J\r\x82/kM\xe9\x18\x9f\x86\x01\x9e\x95\xb4\x18\x8d)\xf1\x8d\x19\x99\xf82+@\x1eZ_a\xd1z>\xab\x12\xd2\x8a,\x96\xae-\x81\x03\x14QJu\x82\xd4\x86&\xf2\x99\x7f\xa1\xc9\xe6\x8cyy\xc4\x06\x00\xf4\x04*\x06s\xe5W\xaa\xe5\x98j\x03\xecxpe\xc0\x92\xf7\xb4\x86\xb7\x81\x84\xaf\r\xe64\x9a6H\xbd\xf4"a\xb7\x80\xa3:\xac\xa6\x02\xe2]If!+\x1a\xdb\xc4%\x96B\x84`\xe5l\x04r\xa5\xb8\x11\xba\xfe\xc8+\xd1q\xce\xfd\xa1\x8c]\xf8BNd\xfby\xbc\xb6\xbd\xd1\xb2\xa9\x88\xbc\x8f2j\xdfs\x9c;\x16\xe7\x81~\xe0\xbf\xf2\x98\x9b\x16u\xbej \x7f\x9f,\xe8\xe1G\xef\x07\x81K\x85\'\x9c>3\xacN]\xd4\x85\x0c\xd3lv\xf35\xdeGYZ\x85\x01{5\x9d*k\x0b2\xb9\xe7V\x9fl!\x03m\x89\x13m5\xc2\x13<_\xb7Ru\x1d\x81\x96\xac-\x9cMj4l\xbc\xad\x13v\xef\x82\xd6\x1e\xf0\x9d"\xdc\xe2!k\x9fN\xda\x0c\xf6$\xab\x15]\xb0\xee\x00\xfa\xc7\x07\xe5obe1}s\xdd6\xa3\xb6m\xec\x97E\xcf\xa5[\x1d*\xb6\x08\x9bv\x1c\xf1\xf0\xd9\xef\xe3\xb6!m\x0e[\x88;5\x03}\xc6Q\xfb]^\xdb\x1e@\xa5DsOlls~\xf6\xfa\xae\xca-\xbf\xaa\xd2\x95z%\xec.&\xd3\x05\xceO\xf7\x1a\x94\xddA\x1a\xc8$W\xd2K\xd1\nf\x8d\n\xc9\xfa[\x06\xa0\xc9\xd0h\xc2\xaej\x03e\x16\x05$\x1d\x10\xe2\x82\xcf>f\x06\xce\xdb\xfcO\x1b\x81`\xc8mtV\xd1}\xd3\x86\xa7ArM\x98\xb3R\xcfL\x12\x00Hq\xa5H\x19\xb8\xd7j\xb9Y\xcfz\xc4\x16Cx\x8f\xb5G\x9c!S\xb9\\\xc3\xc73\xa0R\xe4;Q"y\xec\x94\x07\xb2_\xb0\x1a\xe4mS\xc0\xb9(\x92\x9e"\x98\x83\x81\xae\xec\xa6\xbc\x159q;^\x87\t\xf0\x8a\xf1\x02\xcc\xce\xe7y\xd7\x0e\xe3\x11l\x03\x10\x87\xd6\x82\x9d\xf9;\xdf\xb1k\xb8s\x16\xb7\xb4\x7f\x06*]E\xe6l\xbd\xac\xd6\x0b\x9eaR\x0c\xe9:\x05}\x02\\O B\xc0/\x01\xf7\xfd\xd5LC;\xc6\x1d\x02\xca\xa4\xa5N\n\xfa\x0b\x97\x8d\xe9\xeca0\xabn\xb4\xed\x90C\xbbw\xe9\x11:\x16-\xd5wnf\x0c}\xecKP[\xa0\xc1\xea\x11$\xc5r\xcd\x01\x8d\xe5\x1b\xe5c\xe1\xc7\xd4\x9a\xa1SU\x19)e.8\xd8T\xc8\xb38|\xf9\x80\x91\x1bV\x97\'$#*\x8ai<\xa6\xf0\xcf\x89\x96!=\x06\x90\xca\n9#%\xa6~\xd2\xd9&}\xaf\x96\xbaE\xbe\x88&\xba\xd99(\x95\xf5/\xf5\xea\x9b\xca\x87ed\xec\x14l\xfb\xbe?\xc1Yr\x90\xf2RRW\xb3\xbc\xfe\x85K\x08`\xe0Q\x05\x85tx\xe8\xd0\x97\xe3F\xec\x9a\xaf\xa5}H\xcf\x06\xe9U"\x82\xe9\x86\xa5I\x9ak\x89 \x1e\x1d}-\xfa\x14\x91\r\x1bX*-\xbd\x82\xc0]-\xe2 \n?\x1a\xd2=\x86\xdb\xdc\xa01\xf4\x8e\xf7\xa4\xd5\x02yk;\x05\x7f\xc5\x8c\t\xb8`\xa9V\xaa\x1ep\x05\xb3=K\xc2\x076\xca\xff\xf3#\x10b~\xe9$qzDi\xcc0c\x03\xdeA\xe1\x0f~\x88m\xa1R\xd9?\xff\x12\x98\x86\xe8\xd2c3\xce\xfb\x91\x0f\x10Q\xd29*\xa6M\xd1\xca\xa3W)O\x0b5Sqn\xd2\xa4\x17c\xd4\xf3\'\x04\xac\xf9/5\xc9\x99qk\xce\xab\xf9\xd7\xe0I\xddc\x80\xd8\x1a\xebC\xddcm@\xdb]\x7f\xeb\xb5\xba\x0f\x1b*[\'\x14\x0e\xe39\xd9)\x07P\x87\xfaLj.D\xbf\x19\x08\x98\xb3#x\x85\xdb\xceo\x87\x80+y\x9aR\x01\xb2\x1d\xc4\x16jn\xf6\xf1\x03iB\'\xa9\x94\x8e\xb0Z\xe8d\x10\xf0\xd2\xc1\x9e\xe8Z\x15_\xef5Q\xa9B\x94\x0c\xa6\xe8\x85\x9e\x13\x82$\xac\xe8\xf0\xa4i\xa1\xc6y\xd9*\x9cm\xc5\xff\x85\x0bjo\x84\x9f\x14\xb7\x95?\x8d\x7f5\x0f\x8eg\x9c\\\x13*n\xcd\xf6\xb6\xb2\\4\xcf\xdd\xcd\x179\xb2\x80\x03\x86\xfb\xb1`6m=\xb4\xf9\x18w\xa4\xe5@\xce5\x87\xb2r\xbb\x86\x0eHC\xc8\xc4\x10\xf2\xd1\x8e\x10_\x99\xc9\x9a\x1dq\x18\x01H\x11)\x91(\xb3\xddc\x83\xa6\t\xf2aIyy\xef\x04\xd9\xa0\xa1\xf3N\x8f\x05\xa0q\x9a\x92s\x10I\xf8S\xc2I\x97\x19\x81-\xab\xa3\x8dq\xbb_;\\\x95P\xe8[\xe9\xc7\xfa2`l\xe73\x87[\xd3\xf4\x91\x01]Z\x90\x0b\x0c-\x91\xf5\xed\xf4L?Z\xd0\x81K\xb2R\xaf\xfc4B\x87\x00\x96\x0e#>bdP\xa0\x08\xec>Y\xee#G\x8d\xa22fj\x8e\x1a\x83\x7f%\xfe\xd4\xc4\xb2\xd7&\xc0GW\'\xfc\x0c[\xaa\x94\xf7\x05\xf7\xac\x9c\xfe\xc8\xb6\xc8l\xf0O\xf2\xc5\r\xc9\xb8\xbe>\x19O\x1d\x16\xf7P\xef?\xce\x16\xbcF\xf3w\xf1\xb5\x06\xe7\xc4\xb1I\\7Y\xff`4n\x05\x02\x8b\xf6\xec\xb7\x1e\'v\xa4\xf5\x91\xb3\xc3\x9d\x86\xab\xf4\xdeE\x1d"\x82<\x8cO\xa7\x02\xc3\xab\x94o\xd1-\xf7PlHFp\x1d\xcb\x9a-xI\x8a\xaf\x8d\xc9\xd2\x90\xb1S\xb1\xbc\x9b\xb0\xdb3)\xb2\xea\x98\xb3\xe6y\x1e\x8f(R\xa57I0Ah\xed\x91\xba\xa3\xc2G\xb9r!\xed\xf3\x0c\x0bV\xb5n\x19\x13\xc8\xe6u\x8a\\\x0b!\xcey\xd0\xf6\xc5!o\xb5xf\xccv\xc1\xb4\x04v_\xc8o\x1e\xa8\xc1\x06\x99\xb5\xc5\x8f\xcb.\xce\x91\xb7J\xe2Kd~g\xe3\x14\xef\x10+\xbd\xa1\xbe\xca\x15\x19B\xf6v`\xe9=\xd3\xf4\x88rz0K\xa4l\x0e\x9co\xfa\x16\xe2\xdc8\x07\x98rnh\x84\xa3\x97f\xa5w5M\xbe\x12\xc5\xb3f\xd4\x1c\xbc\x99\xda\xf4\n\x94F\x971\xef\xe6\x91\xc7\x0e8W[\x933\xcf\xfag\x8f\x19*Q)\xf3z\x06\xc6}\xb3B\x1d\x06}\x98\xc9\xf4\xb2\x94\xad0\xa0\x0fX?I\xb2\x9f\x95+\xa1+\x84\x9d\xf1\xf5Dx\xa78\x974w\xdc\xdf\xcd\xad\xb4Vdb\x84J#@\xef\xc5\xb1\x11\xa8\x88\x94u_\xe4\xde\xf8^\xd3P\x87\xc1\xf7\xde4\xf94)ZZu\xd4\xben\xba\x92&\xe6o\xb3\x85!\x16\x0f\x18\x1f\xc8\xe2\xe6\xba\x88I,r\x1f\xe5\x9a\\\xe9\xcd\x0c4\xdaE\xbd_\xdb\xa1\x8f\xa4\x85\xdar\x97\xc9\xee\xce(\\\xe2S\x99<\n9B`\x93\tg\xcc\x8a\xcb \xbf@\x17]\x073\x9cX\xf8\xc6{y\xc1(\xf2\xc1D7\xb4\xd6\xc4\xcd\xf7/$Z\xee\xf9\x87\x90j;\x1aG\xa6!(\xf1\xc4\xd8\xac\x9a\x8e\x9eI\xd9\x91\xd4 On\xad\xe2\x9c\xa8e\x82\xcf\x19\x01\xadP\xeb|\xd8\xc3\x15\rd\x85\x99\xe5\xc9;_\xc57T4\xa1\xdav\x81\x92\x01\xd6\xf9\xea\n3\xd5d\xa4,F\xd8\x08\xeb\xcfwu\xd3\x17>\xd2\xe2\xa6\xcd\xbe\x90T\x9a \x13\xf7zM\x84< \xadN\xccnN[;r.\xbc\xf5\x8eC\x00P\xda\xea\xf4$y&FgF.e@\xfa\xc8\x9d\x95\xf3\xaf$g\x16\xb6\x1f\xe1\xa8\xb2\x1eJ\xcaUbj@I\x02\x174\x90\xafJ\x8a\xeaE\x02\x96\x14W\xb3\xc4\xdb\xf8?\xf8\x1d\xd5\xcd\xdc\xcb\xfa\x1e\xd4~\xb8^\x19\xe6\'\xd5|u#\xd5\x82\x83p.\xab\x10\xb9\xf3\xb9\xa4\xc5\xda\xc9*\xbd\xa7Df\x8dK[\xc6\xd2\xd8\x8c\xef\xb5$\x92@\x11\x1c\xba\x0b\xcb\x94\x81\xd1J\xdd\x81\xde\xceI\x97G\xa3\xd2\xc6\xf7=v]\xfa\xe5\x1a\xc2\xe9w\x15\x1bv\xbe\x83q\x90\xb1\xc2\xa3\xa0\xe2V\x905\xc8\xd2N\xac:2\xc9\xc1Ep\xb1\xc8\xcasLu\xcf\x07HC\xefC\x05\xda\x90B4\xda"\xdcOD\xe2\xb5O\x9f\xeb\x10\xa8\xd9\x8d4\x04\xfb-\x85\xfd\xe0\xf4\n\x1d\xcb&q\xbdO\x95\x94\xd6PP\xcd\x1c\x13M\x1f-\x90\xacO\x8bzv\t\x80V\xd3\x82w%\xc1\xb6R\xcb\x9e\xcd/\xa0M\x15\x13\xc4(`2\x8a\x1b\x86\x0f\xc5\xa5\xe5{\x1c\xa5Y\x98*6\xa9\xee\x16(D\xff5_\xd9\xedrg\x97\xbf\x9a\x08U\xb4w\xe7\x16\x1e\xfbt\x1c\x169\xf2\xd4\xe1\xd5\x18\xb0\x99\x1c\xc7\xbc4\x18\x7f\xd5\xf9\xc0\xf4\x1dPf-\x1e\x04\n;x\x95\xf1\xa1\x86\x88\xdbd\xf3\xefK\x15\xb1\xeaW\xd3\xc0\xde!\xbb\xba\xad\x84\x98\xef\xe6\x95X\x8bp\x0e@?\xa1\x05\x1e\xe2\xf6\xec\x92\xfe`B\x8a\x9aY\xc8\xf0\xf3\x9f~\xc1T7\xb4\x81#a\xa77\x90\xae\x98M>\xaa\x8b\x88f_vU\x11\x94\xfaA^\x0b\xe5\xe3\x98\xbf\x99\xba#6Hp\xef\xbb\xca&\x00\r\x15"\xe5rrU\xc3\x94\xf7\xb9\x7f\xa3\x97\xdb\xcb:l\xd3\x87/~\xab>\x8cME\xb4H\x05\x903\xe3s11~\\\x04\x9a')
|
obfuscated/prompts.py
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
# Pyarmor 8.5.11 (trial), 000000, non-profits, 2024-10-10T13:10:41.992722
|
2 |
+
from pyarmor_runtime_000000 import __pyarmor__
|
3 |
+
__pyarmor__(__name__, __file__, b'PY000000\x00\x03\x0b\x00\xa7\r\r\n\x80\x00\x01\x00\x08\x00\x00\x00\x04\x00\x00\x00@\x00\x00\x00a\x1e\x00\x00\x12\t\x04\x00+g]_?\x9e\xca\xe4\xd6@\xc2l(\x16\xce\x8c\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x83\xb8\x1a\xda\xfb\x19d-N\x11+f\xe5\xb2\xd2 !\x00%\xf8\xa5\xa5^\xedy\xce\x18\xe4\x9bk\x13c:\xc9j\xdf\x19 %A\xbe\x1b\xe0\x84[P\x1c%J}a\x96\xfa\xa7O\xb5\x14\xf7\x11\x84\xe7\xf7\xdf\xfbf\xd6\xd8\xdb\xef\xf3U\xfa\x7f\x1fj\x94\x83\xa3\xcc\x10h\x95L\x00\x14\xf6rV\xe8\xd6\xd4S\xf7{eC\xbbo\xbd\xbc\xefK\x81\xe5\xda\xa6/I\xfd8\x90`\xb2C\xa4\x93\xda\xad\xb8\n[\xfe0\x02}\xfaWn1\x14\xe34"g\xed\xe6\xbf\xe2>\xe6ez\xa5\xa2|)r\xb0\x7f\xd8\x11\x1a\xaf\xcf\x83\xb5\xd2$\xcd\x08\xd3 \x8c-\xbctB\x1d\xc1x\xeb\xeb\x9a-\xbf\x7f!9\xa6\x98E\xfbz\xeeC\x944\xfa\xc8a%5\xf7}\rs\xd5\x12\xf9\x0b\xcc\xc3C\xa9\x03v\\\xc7\x1f \xa4\x13lQ\x9eP[\x9e+=Y=\x15\xec\x8b\xab0\x14$\x00\xe0A\xd1"\xcf\\\xf9\xcb\xde\xd2\xe0K\x07#\x03\x12\x7f>\x9aR\x98\xbd\xb3\x96^\x93\xc3\x9b}\xb9\xbf9\xfb\xdc\xbf\x12m(\x12u\xce\x82l\xee\x11\x8bX\xec~\xf1\x8e\xbe\x02\x0b\x91B\xf1\x0c\xbe$\x04N\x858\x93qZ\x10\x04\x9a\xe0M*\x14i*\x91\xff\xc5\xbc\xb9\xd0\xab+\xfec)3V.[whT\xcd`1\x85\x04\x19a.p\xf3@\xff$v?B.\xe4\xac6\xa2D?dn=o\x97\nO\x93\xc2\xca]]\x0f\xb6R\xcf\x1a\xeb\x1e\xa6\xfd\xa5t\xeb\xc7X\x0e\xade\xb5\xf6\x8c\xf9\xf0\xcb\xec\xc9}\xacv\xb0\x05\xcd9\xcb\xa4\xc6\x13n\xfe/>ci\x9cpQ\xe4\xb5\x9e\xeaZ\xaae\xe6V\xa2\xc2\xa2&\x8c\xf4\x84\x039xa\xde\xac\xb48h\x13\xdeJF3O($\\\xa9\x91E\x1b\xb9\x81\x9c\x1e\xd9\xa9\xa8\\\x9b\x04\xa2\xc09\xadqH\x00D\x83J|\x7f\x1c\xb4(\x9f@\x90\xfe\xe7]\xe8er_\x81\x18,\x0c<6D\x96\x98\xe5S\x0c\xfc\x07\x91\xa8\x83?\x96pb\xfa-\xf60\xf1\xe6\x8a\xb0\x97r&6\xbbw\x7fk\xd3\xadX&$\xe5\x90\xe3\xed\xb6\xeeG\xd6\x92\xaf\xab\x0cP8\x9d\xbdu1\xd5\xa3\xc8\x87\xb5\x87\x98\xa56\x84\xed\x03sXI\xd9\x16\xf7h\x0c\x92\xadi.\xfe\x91\xe9\xc0\xda\x0b\x84\xb0[\x8c\xc1\x1c\xe3\xf5\x98\x12X\xfb\x88\xc5\xe7\xaa\xa6X\xfb\x10\x15\xe9\x10\xcdl\xd7!9S\xd5\x8f\x90\xf9\x0b0w\xfe\xa3a+\x08\x85H\xa7-p\xaf\xbe\x1e8Y\xd7\xf7j%\xbe`z\x03\xf2\xe8\x8cV\xa7PV\x1b\x00C\x86\x9b\x86!\xbf\xc8\xbb\xe2Y\xc8Q\xe0\x80\x08d\xba\xaa\xaa\x86\x95\x80\xc9\r,<HV$\x9b"\r\xe3\xcc\xd4x\xba?\xb6\xa7iq\xa3f0\x83E\xef:-\x80\x1a\xce\x1cB\x95\xd3tvd\xec\x19\xe5gs\x91o\n+/\xd7\x8e6\xa4\xf1\x8a-Q=\x99\x8f\x01\xe9\x11\x8banB\xde\xef\xb61 ;X\xb0\x17!\x98\x88\xd5\x88\x1a2f\xa8\x87\xaa\'\xafJx\xd3~\xcc(]\xab\x0cP\xb2+\xa9\xf5e\xbe\x8d\xfe\xd7\xf1\x13\xc2A\xb1TM\xdb$E\xef@\xc9\xe8\x98\xc8\x8d\xb1\xff6J\xc8\ra>\x13\xb5\xcd\t\x840\xa9#\xa8\xe6\x98\x9d\xc2\xd7A\x9b:\xa1\xf6\xf6\x1a\xde9\x05\x04\x00\x18\x95A\xdd\xb2\xa1\x7f\xcaM\xc9B\x9a{\xc2\xe9>\x83"c\x9f\xd8\xd2\x10!\xbe\x1c\x03S6\x07\x93\x07\xed*\xa7#D~q\x0eS0\xf1E\xe0\xb9*Z\xed\xfa:\xb0\x8f\xc6\x015\x16\x1d&\xb1W\x10\xa0\xae\x15\x08\x83!e}\xf1\xe9$N\xfdTUi\x13\x93:\x9fn\x03U\xa1\x92\xdfy\xc7\x12\\\x08F\xb7\x87\xa5\xa6\x88I\x81\xdb\xd8\x1c*\xe9\xede\n\xfaf\xaa\xb8N\xaezC\x84\xf0OC\xd8\xb0c\xc6\xbb\xb7 \xf2\x86\xea\x04%\xe7\x7f\xaay\x19\x87>Om\xa5\x8a\xa5\xee\x85q\x9e\xe8pX\x88\x90PM^#0Q\xcdi\xe9I\x97\nw\x8f\xc1\xfcB\xd0\x08\xfc\x1bv\xf5\x87r\xb5\xa4\x1a\x1f\xd9_\xc3\xf2\x0e4\x9f\xdd,\x03\xbb\x0b\x98*N\x07A\xc5\x1a\x7f\x13\xf0\x0e\x8cp\xd1>w\x19r\xb3\r@\x93F\xd7\x1fjO\xe3~\x0bJ\n\x1c\xbbY\xed\xcd\x15\r,\xd4\xa1W9\xde3K\x18\x93$\x01\xf1\x8e\xf5\xf2\x8e\x8a\xd6o\xe5X\x06%\xc1\x14\xa7m*\xdfQX\xa6\xd3hWq\xc8\xa9\ni\xb8\xa6:v\xa1%\\\x7f_\r\x07\x84N\x16\xcdj\x98Y\xf0\xa5S\x93\xc8\x9f\x8d\xe2x\x82y\xfeH\xa8{2\x97Y\x82\xa9\x1b\xa9\x05\xf3\x87\xaa^\xaef\x82\xa8\xc72\xe0 <K\xdc\x7f\xfaI\x9bGq\xef&/\x13\xd9T\x10w\x05Y\xa0q \xdd\xe3\x1f\x82L\x95\xad\xa0O\x1b\xf2Y\xff\xb1\x980\n\x8e=*\x19\x87\xc3@*\x9f\xc56#\xf3+P\x98\x89I\xb6\xc3\xd9\x9b\x03\xb3\x0e\xefv1\xa3\xb4\x07\xc2\x8fu|:Z\xa9*\x06\xa2\x99\x12\x01\xaf\\\x9b%\xa5\xaa\xea\x8b:\x90 \x1a\x85c\x1d\n\x86FY\xfb\xa5\x1c\xc1\xbd9\xa7\x1aCzv\x18\xd3@(\x07\xf1\xc4||B\x8a\x8b\x0c\xf9s\xe1\x86\xf9\xb8ZrJz\x9e\xe8\x0e\x18\xa5\x96\xd6\xb5\xca\xb0\x911\x1b\x89\tI\x11\xb2\xe2\x94\x13\x89UdV\x9c\xa98\x0f\x0e\xe5\x8a\xe8\x16j\xb4\'\xa7N\xa5\xca\xf1r\xb6\xf6\x87+p\xe6\xdd\xf2@\xccU\x91\xaa\xfc\x8d7\x91\xa0u:\xc8\xa6\xf1$\xf5\xafG\x0f`I\xf3jO\xdb~Q\x18"\xfcd\xc6\xb4\x9c4O\xa2\xb0\x80\x9bM F\xeb\x94\xe8^\x03\xf6\xecL\x1c\x9e\xe5[\xf7\x06[B\x9fpVS\xd2\xd3\xa5\\`-|\xd6h\xe4\x80\x92,}\xe47\x00`\x89\xb5\x11\n}Wt\xa8\xf2o\t\x01\x92\xbd\xda.\x0f\x97S\x1c\xbaF\xc4\xe4\xb0nK\r\xcf,\xdb\xf6\xa7p:>\xd5]j\xce\xda\x18\x80,_Oc\x85%\x9c=;\xd8c\xaf\xb5\xcc\xfc\xee&\x0b<\xdcF\xbe,.y\xfa/\xd3\xb3\xfb(\xceN\x95\xf0\xe2\xb8\x0eoN\xa6\xacd23D\xd0\xf0\xed&HB\xc2Y\x0f\x05\xe3rEK\xf9D\x95\xc5]/\xe6\xe1\x1f\xf4p\xda\xe5=&\xbbLwk\xb6V\x04\xf7\xb8\x87t\x01\xa62F\x8a$\xe6F!\xd6\xa9\xe2\xeaK\xb7l\x8dF_\xcfN\x8b\x13!\xcf\x11\x13{>\xe4Rzg&Lu\xbc\xef\xcc\xb9\xc2\xe0k\xc36\x1e\xa17Qs\x9b\x08\x84\xbb\xf6(-\xab\x8d\xb5\x89\xd9\x00\x94\x1b\xcd9\x19\xee\x9e]N\x055\xb0i\xecH7\x99\xdd\x1e\xfb\xcfL\xdb\xe8\xca\xc9\x04G%\xe22M\xf6F\xa9\xb4OORZ\t\xb8\r`\xe4s58\xd6mI[\xc8\x19/\xebp\xdeY\xe1G\xb6\xbc\x8c\x9f<e\xf8Y|\x14}B\x06\x18/\xd5\x17\xdfLo\xaf$\xf9\xf7;<:\x81\xb6\x1e8PI`b\x11\x1e;\xb6A\xa4\xcc\xd8\xb2\xb3\x86m;\x18\x0e\xd9\xe6\xa0\xb3U\x15?\xd4\xe8N\xcf:\x11\x826\xd2Z\x12\xee\xa2\xde\x8c\xbc\xb85-\xe1L\xdb\r{-[\xb1U\xdaFK\xe2\xa8\x99K@\xe5$\x96\xd0Q\xb3\x9b\xee\xf6\xa5\x06\x9bg?\xc2%\x1e\xf7,\xbafM\x9f`C\xc0hd\xb9\x05\xcd%\x9e\x97\x18\xddS\xd8\x87\xde\x12\xa8m\xca>K\xc4\x06z7=\x82>X`\x02%\xda\xe1\xafM_\xebx\x84\t\xa6`\x80\xb4\xf4q\x88\xcd\xc5%\x9e\xc7biv\xc3\x01hIH\xa3\xa4\x9f\xb9\xee\xbf\x99\xa4"\xa0f\x8cV\x84sG\xd8"\xc2#\x85\x04\xe3\x803\xaaS\xd5\x90\xe7\x9e\xc2\x83\xef\xb6O\x91\xe2\n\xe7\x1a\xfb`\n]H\x82xg|\xc4\x88\xd9\t\x15\x8c\x80-\x1f\xa2\xce9\\\x0c\xa3\x84\xc8)9\x9fxzl]\xbe\xddV\xb3\xc72\x0b\xc3\xacH\xf6a#\xe2\x92j\xbe\x90z\xa9\xc4\xaa\xe4*\xa6\xb6e\xaeB{\x1aB\x10\xb9\xa8\xc5C\x10\xc4Q\xb1\xe8\xa2q\x8f\xdf\xf8+\xd5\x88\xe4\xf2\xeawr\xc9\xc5\xde\x86\xac\xab\xec\x12\x02\xc8\xd8Asx\xb1o-N}{7\xb7\x0bbfi|\x93\x00\x1b\xdeU\xb7\n\xd2d\xc7U\n\x86\x17\xc3Z\xfe\xcah;\'\xb8x\xf6\x88\xb7\xe5f\x89~\xc3\x0c~\x81;\xdc\xe5S\xefPB\xea\xc8\x01\tE)\xc0$\x1c9\r\xdeXV?\x0c\x8d\x868\x93!\xda|\xac\xbe\x0e\xce{~\xf8\xf5(\x87\t\xb8\xec\x05i\xd4X9\xe2sm&\x07\x87w\x1a|\x05\xb9\xd5\xef\x99\xdd1\xfbfP\x89\xc8+J\xe4\x00\x1aS\x90$5@\x8b\xb9\x9a_\x80\x05\x92\xb2\xcf]\xb8\xf2R\xaab\xe5-]C\x85l\x16\xbdw\xe8\xbc\xcd\xe6\xf7r1x\xe1\xd4\xc2\x06~\x8f\x97 \xb7\xdfn\xd4\xc9\x0eP\x88P\xfd\xe3O\xa5\x98\xf8U\xd4\xd1\xc9\xa6,\xf7Tt\xf5\xd8FB\xc13w^\x9d\x00&/[r\xf5\x19\xe2\xb4q\x14b?\xaen\xb3_\xd7\x08\x1c\x94n\x0b\x99\x03\x83o\xba,\x9f\xc9\xe1\xd9\xa0\xe0\xc9\x04\xcb\xd9\xfc\t\x16A\xcd\xf1\xa0 h;\xf8h9\x81z\x8da\xac4\x10\x93\x12\x9a\xc44n\xa3\xab\xa3\x0c-e\x9c\x9b\x94\xd1a\x9e\xc0\x0b\x11h\x15\xd6|\xa0\x00\x12\xe7\x8c\x99x\x93p \x8c\xee\xd4\xde\xfdm.\x87t\xb3,\xe5\x10O\x82\x1e%-\xf5f\x94\x16\xa6x\xaa \xa2\xcfo~\x02\xb7\xe9\x9b\xa2\xcd\x86\xa0\xd4\xees\xd88\x0c\xed\x00\x99<\x80\n\xb7Fd\xc8\xf5\x90\x99\xcf\xc9\xcda\xc7\xb7\xf2\x11\xc2I\xfe\xcda\xe4 X\xb4R\xbbS\xc7WU?\xe1\x8b*\xecR\xael\x92\x8c)\x11^\xcb\xc4&\x05;\x138\x05\rv\x9c\xd11\x83\x0e(\x17e\xd6\xebC\x0ep\x9c\x96\x1b+m\x9eZ\'\x8c9=9\xa8\xaa!\xf6\xcc\xa0\xec\xfe\x01\x97\xdb\x06\xc5\xa8\x87ji\xc3Ox\xcd\xd3\xad\x95\x0c\x9e\xc7\xe9h\xe4\xaf\xe8\x82D\x03L\xae\x02\x97\x1e&\xac\xfb\xa2\x98\xa7\n"\xc1\xdd\x98Q\xab\x0c\xd4\xeb\xeb\xe3\xf8\x19\x82:\xda\xd2]\xf2p?\x00\xa9\xf9\xa8~/\x9b\xb7n\xf8\xa1\xa8D\x82.\xea\x1d&!\xf4\x81\xd22\xc7[\xe4N_\xda\xb4\xaf|qc\xe2Qc8\xads\xed\xbe\x15\x95\x91`\xb94"\xb4\x85\xdd\x98\xab\xee;k\xd6\x8e\x9a\xd4\x8a\x96 \xe3\xc9%\x91b\xf3&\xf9\xd5&\xba9B\x0b\xc7\xc5\x1eF*]Z\x14jB\x9c\x1a\xe4\xab\xe45o)\xdc\xbc\xe1\x9fhXx\xcc\xe7\x93\x1e\xe5\x82\xeb\xd4a\xa6d^\x18\xd2\xca\xae16Z"[$\xc1\x85LR\xf2]\xeb\x9fI0\xb6~G\xe0;\xdb\xc5\xdfA\r\xce\x90&\xcc\x0b\xec\x0b\x0c\x92\xa5\xe3}\xbb|\xef=\x9dj(Zk\xa89\xae\x0e\xc0\xcasK\xaf\x00\r\xe4\xba\xaa\xd3\xe0g\xa2\xcbQ\x90\x99\xc3\x97B\xae[\xca\xb4\x85\x94\xca\xf3\x949\xee\xfbM\r\x9b\x90i\xc6\xb2Mq\xaa\x03+G\xa7=\xb03\xe5(H\xd5M\xe6\x98\xec\xe2\xf6\x0e\xe6\xe2N\xc6M\x0f\xfc\xea\xbe\x01E\xcb\xcfi\rx\xfe\xbd\x89\x97\xa7i\xad4\xcb)\x91\x86$\xbc\x15\'\x0f,oh\x06\x03\xb4m\x0b\x07Jd!.\x9d\x9f\x16W\xe9,\xca-\xfd|\xf8\xe1\xb2\x95\x83g\x98\xab5\x06\x08U\x0f\xe3\x93\xf0\x03\x98\xdfR"1+\x88\x80\xec~@\tq\xa4\x19\x85\'\xaft\xda\xd2\xa5\x81\xa0\n\x90\x8f\x7f\x93\x0e\x12\xbezKG\xee\xbf\x9f\xfe[\xd45\xc8\x05!m\xa1\x03)\xb2\xaa\xdc\x1dc\xa9\x00\x04\xa7\x14\x00\x91\xdbD\xaeeF\xe7\x8f\x17\x06\x95\xa0:WZ\xf2\x90{\xd1hIy\x1f\t\xe8\x14\xd6Y\x8cR\x94\xa0I\xb37\x81\xdb:_\xb2tO\x8a^\xd9\xad\x86\x80\xa8\xb5A\x19\xba\xe2(\x1e \x99\xe9b\x87\xb3\xc1\x93\xb7\x0fe\xaa\xe2\x94_7\x80\xa4\xce\xdcQ;\xcbt\x96\x0e\',S8\xe0\xcfn\x067\xc9\xe6\\\x13oX\x80\xe3\xe8\x08<\xe9f\x83\x82\xb5\x05\x8c\xce\x94\xac\xe2B\r\xd3\xaa3\\\x8b\xcf\xc5m\xab"\xc4\xa1\x0e\xcf\xce\xec;\xe6\xae;62>g\\_\x17;\xc3\xa9A\xa6\xdb\xf6\xd39\xd5\xdb\xf7\xb9(\xf2~\xde\x81\x1d~\xee\x9c\xbfNj\xb0\x13\xb9W`Yp%su\x0c\x04Y\xcd\x8a\x1d\x1b\x1fK\xba\xb5\xdf\xbb\x13u\'\xa2l\xe8\x183Z\r;\x08F=M\xd5SM\x83\xb9g\xb2\xb5z*K.O\xb1\x17\xbf\x06\xd0\xcb\r~\xd5_\xbbvB\xa91\xc7_0!.CH\xd2z\xc2\'\xfd\x8d\xa6\xe6*\x9e=\x85\xb8\xa0\x81Nju6\xe6\xf2\xe7i\x07\xac\xf5I(\xe2R\x8e\x13\x03A\xcfW\x00\xffk\x82\x9f\xae4\xe9\x8e\xda6\xc5\xbf\x1e\xca\xd9t\xf8Y\xcb\x14\xb7\x00\xf9\xc1\xe6\x8f\xc9b\xb8\x8c\xf4]\xe7\xbcc,\xf6\xf90\xeazF/\x8aL\x9f\x0e\x0f\x18c\x87@t_\xf9\x004\x8e\tx\xe5\xe6v\x10\xf9\xf3\x9f\xfbsx\xbd\xa5\xd7\xbe\x84\xb2\xff\x8cYV\xfd\nE\xa7\x83p\x8e\xe1@=\xa0bW\xba\xaa\x896\xb4\x9b\x9e\xc5vV\xa0\xe4\x13\x0b-\x19\xacJ~\x02\xf7\x8e\xf2M\xbakNK\xaf}u\xc0X\xb54\x8a2\xc1\xa5&\x9e\xfcG~O{:[kcK\x85\x14^x\xa1j\x95\xa3s\xe3\x03HQ\xe8\xa1id\x83\xc7\xdc\xb5\xf3\x8d\x8a~hr\x8b\r\x1d\xcb8\x96\xb2-.\xa6\xe1)\xc9\x0f\x8doSUT\x06 6\x17\x1dS\x88\xff\xbe\xfe\xe3\xfdA\xdd\xcc\x91\xb66cK\xb1}\x96\x9a\x84\xb0\xf5\xc8\x9eM>\x14\xa2\xf1\xe5\x01H\xd9Q{(\xec\xb0\x1dv\xa8F\xb1\n\x97o%\xa2\x17\x96\x1c&S/V[ \x04vg\x82\x8a\x05\x85\x03\xf5\xa7\xfcjk\x9f\x83\xc5\xff\xdb\xef|\x81:\x1c\x97o8\xaeNz\xcd9\x15\xab\x80/\xb7\xc6H\x8a\x8a\x99\xa9\xb5\xc3\x89\x1du\xa1!\xa3\x02\x173j\xb1_\x9e0\x1e\xcf\xeb?~\xff~\xfc\x1b-~\xcd\xc0\xab}\xd6\x14\xd3\xb7\xad5\xf3\xfa[M\xcf\xa3\x0c\xc7\xa5\n\x8d\x08lcI-Nu6\t\xc8\x97\xfa\x01\x15,/]\xfbu\xec3\xda\xf4\x0f\xa2]\x1fP\r\xb1\xd0\xe6\x7f\xdc\xe4Dq\xd9g\x19\x0e2nd{\x17\xd4\xed}lc\xf5\x0ckL\x8f\xde\x83^,6s^\xb6\x90\xcb^a\xb7IP\xf1|\x93\xd3z\xe5\x93*\x9c\xf0\xdd#\x95aY\xd0X\'O\x01\x1c\xe0\x01x\xc8\xc0mYU\xc6\x88\x05pt<\xc8\x18\xcd\xf2bU\x97\xa6\x96&\x0f\x8c\x13\xc6\t\xf8\xb3\xbf\xc3\xcb\xdfp\x9f|3\x1e\xccF\xaai\x19\xc4\xde\xd7\x1e\xe9\xbd\x85\xcc\xf7\xe2\xef\x15q\xb8\x82%\xb81\x1di\x00X~\xf3u\x84\xe7\x9d\xcfr\x8c\xbf\xe10\x0fYj\xa9wS\xb0\x826\xde\xbd(\xd0\xbc\x801d\x1c\x84L\x0bv\x88\x1a$\xa4\xa5\x85\xa3\xc96yj\x1b4Y\xc3;\x9a\x8e9(\x95\x07_F\xa8C\xc2W\xfbq\x81\t\x90p?\xab\xa5\xbe\x12\r\xbf\r[\xe2]\xde.\xf5z[\xd4|\xc23\x9f\xc6\x93\xaa\r30\x9b=\xa1qt\xa2\x8b\rt\xa6\xf2\xf1C>\x06Zf\x03\x01k\xeb\xe3\xc9\xa1\xba\xc8N\xa4\xd4\xb2%6V\xf8\x0f:|\xb5\xef\x8a"54\x1bw\xca\x8d\x86\x84j`\xd2\x16\xcd\xd8\xfd\x8coC\xfe\xf1\x85\x12y7h@\xc7\x91\xe7\x92\xddf\xf6\x10\xc3n\x10d\xb4\x90\xcd\x10\x837\nHMNm\xfa\xb3\xfc\xdeu\x86\xc2\xc0\xd8zI\xbbp\xe4\xa1W\xe0\xa5Ek\x9cx~*\xd8;\xba@\x8a\xbb=|\xb6\xde\xe3+\x83I\x05\xceN \x1d\xb2\x9b\xc6h\x7f\x12\x93\x95\xfd\xc1\xfb\x89\xb0? \xd7&R1(\tK\xaf\x00x\xd1\x84\xb3\xc3 \xb1Z\x18i\xff\x17\xa0I\xfc\xd4!\xa6\x8a8\xd7\x7f\xb6\xa4\xc4\x08x\xf4O\xf3\xfd\\7\x1ab\\\r\x1f=\xde\xaaaK\x8c\x15\xa1\xd8\xbe\xf8~\xea\xef\xd1c\xe1\xe6\xc22$:/\xa7\x83\xd1\x83\x9e\x8ff\xd1>Ub\xd2\xd9F\xaaQ7\x188I\x98\xa3\xe9\xd4\x851\xf7\xe0\x84\x02\xa6\xc7\\,\xcb\r\xa3\xed\x04\xda \x8b\xd1\x98\xa4\x91\xa6Y\xd1\xe4\xfc\xd1\xc0l\x04\x88=\x16\x8dUi\xceV\xf5$\xee<\xd2\x85?!\xdfO2S\x8a\xfa\xb5\'i\x01UK\x9d\xe4\xff\xc8)\x92\xe8\x04\xf8\xdd\xc4\xa2\xcdv+\xd5\x95\x83\xd5l;AM\x7f\xea\xf0\x84\xe3=\xc9\xa6\xe9\xa0v\x05\xe7!.\xe8\x12\x96@\x87\x04\x89\xa1\xbf\xf4\xf6\xcdI*q\x96\x85\xff\xbcR\x0c\\L\xe5\xa1\x81UH\x8a\xd6\x01\xdb\xeaU\x14\xdb\x04D\xbe\xfb\xdcp;\x03G\xd38Zfa\x8cL\xd9]\x0fga\xbb2\xafq\xc2\xf3f\x89\x9b\x92$\x92\x17\t\x11\xf8\x1b\x1b\x18\xba\xab\x1d\xfdX\xdevw\xbbh\xbdG#=\xc1]\x92\xfe;\xccR\x1f\xa3\x9fY.yK|\xdb\x00\xf4/\xfb\xa6\xb5W]\xd8\xf6\x04\xbeZ\xa9\xcf\xa4[\xc5\xd7)\x94e\xf0\xc6\x97\x9es:5\xb1~\x0f\xc7M\xaf\x8ai\xc7\xac&\xe5\x14\xcch[2\xf6fl\xe4\x8fb\x9f\xca\xc6T\r\x08\xe5\x86\xb6\xf9\xf7<\xe8\x8f\x16\x14\xd3OW\x86+?\xfa\xa9D\xe3\x9b\x87[\x90P=\x98\xde\x04\xb2KC\xb3\x9e\xbfh\x81\xe6\xfd\x01\x9bc\x86p\x82\x99\x02\xfc\xa3\xa9h\x9a\xb8p\x92V3\x9f&\x9e\xa5^R\x19\x80\xe8l\xe7\x86\x81\x10\x16\x0b\xb6]Z8C\xbe\xdf\x89-2\xd0\n\x19S\xac\xff\xbf\xd8\xdf\x95@\xdd\xc1\x89\xa9\xd2\x06[\xfb\xe3\xd7\xaf\x9bhH\xc7\xa3<\xe6(\x1byQ\xb2\x95@\x04%CU\xb5\n\xee\xe5\x99\xa3\xf0A\xb0\xd1TN\x88\x07gss\xad\xc1\x1bv\xb6\x8cC3\x99\xb0\xd89\x94\x15\xcf"tP\x1c\x0b\x10^Q\\d\xafG3\xe4\x1fGA\x8b\xef\xdd\xc8\x9dku\x12\xd0r\xee\x82\xce\x9d\x1a`\x13}\xdd\xb1\xcb\xe6\x8e\x1f\xca~\x95\x82Q4w\x90O\xf3!\x08\x8d\x1f\xa6a\xb2\xc5*\x0220<\x93\x18\xadV))\x08c*\xefWw?K\xcdA\xe3\x9bX/\x0e\xe7\xd8\xeb\x17gU\xa9\t\x93\x84\xf0\xdd\x1c\xc5,\xff~\x1f\xc9\xa6\x81\xe8l,\xc9\x8f\xbfp\x1b+\x9c.(.\xac;\xc3\x18\xc1\x14\xd7\xdfc\x08\x84Po-J^\x11<MW\xf1\x1c\xa9\xa1;0\x96\xf9XB\xcbY\xbcy>\xd4\x00o\xc24\x02\xebq\x80&\xfb\xb3JR\xbed\x05\x0f\xe2)t\xfb\x14\x07RZ\x9f[\xe5\xb8\n\xfe\x1c\xadb\xcd\xa6\x8d\xa9\x94\x01k\xf6\xba-\xb0\x05\xa8\xd8\\\xf4\x14\xe3\xf5\x95\x06{\xb9\xfb\xc4a\x1d%-\xe5\x9fj\xe2k3\xaa61K\xd1b\x89\x1d$0\xf1F\xa3BK\x8b\x15\xafz)\x92Tx\xa3q\xc1g\x86\xb0\xbfm{\xafB\xea\x98\xeb\xe0\x89\xf1\xf0\xc4\xec\'HB\xbd\xd6\xb4d\xb4\x12.\x10\xcb#F\x0c\x82\xfa\xa4\xfa\xbf\x91\xdd\xfa\xcb?\xb0"t\xa4APd\xf7\x08y\x0c\xb8yK\xad\xcc1f\xd3Wj6b\xbbA\xba\xa5\xec#\xb9{e\xe7\x7fD\xc7\x80\x9d\xea\x01\xe7\xfa\xd0\xc5\xac\xde\xb2\xf4&\x8b\xe1\x7f\xafxTQ9I\x83\xf4/\\\x18\xaf\'3\x8c\xe4\x8b\x82\xbd_\xd2N\x03\xde\x04\xc8-pP\xab-2_\x01l\x14\x12V\xbf\xd4x\xcd\xb0\x11\x9a\x042Hi?\x896T\n\x07\xech\xce]\x1d;\xc36\x13\x19\xff\xec\xd6\x8c\xd9:\xdf0\x98\xd0~`_n\xd0\x87!@:\x8c-\x1a\x8eZi,f\xe8\x8f\x94V,=\xce\xd7)M\x80\x0e\xf7Gz\xd5\xd0C+T<\x8b\xc7 \x88i\xa2P\x97\xe30\xfbB\xe4\x8a\x91O\xe1\x1c\x95\x82YF\xa0\xe9\'\\,\x01\xdfQ\x0f\xac\x1d\x19\xc0\xdb\xb5\xb3\x9b\xab\xb8\xd6\r\xae\xa3/\x92\xae\xb6\x8b\xae@\xb3\xaa.?\xe0\xd5\xafs]\xe4\x87`\x05\xa7\xa9\xb8\xa9\x0e\x95\x81E\x12\x10\'\xa5\xb7\x16\xcb\xfb_\xea\xd3\xa7\x88\xa55\x12\r9\xbe\x1f\xafI,\x12\xe1$\x9a\xec\xf2ymd\x8ag\xc9\xea\x1e=\x06\xc6\xefhf\xe3\xb2\xc0\x1fVY\xd9\x89\xbb8\x94\xab5\x11\xed\x82\x8c\xe6\x89\x99\xad\xd5\x8d\xa8\x1e\xd1\x1f;\x98\xcb\n5\x12\x90\xd5\xe9=\x1d\xe0\x15\xa01\xde\xb2z\x01\xf7\x9c\xeeo\xa9\x08\xdd\xb0Kc\xa5t\xa2!]\xb3\n\x93$v\x82\x93\x16\xb9t\xd5\xb9{\x04\n\x8e5\':R\xad}\xfe?\x97\x06\x13Hw\xea@\xa0R\x16v#\xf7\xc9c<\xc4\x1b&\xaf\r@\xac\xaf\xf0Z\x92+\xd8\x85Q\xa1mK4<\x81\x1cT\x16\x19\xea\xc6V>\x99\x17\x8b\xa9Zm\xd9\x95\xf8\x18\xf9\xdd\x1e\x18\xbb\xa7\xf4\x8bDn\xd1s\x05\x18\xe5Y ]x\xd5\x11K\x84z\xfaYG\xa5\xf1>[\xe6O\x0f\x93k\x07D\xc6\x9c?E#\xab\xd56R\xb1\xf6`\xd5\xef\xc1T\x9c\x97\x94\x93i\xe9\x87\xc0O\xcb\xb9\x94\xfb\xd1\x7fR\xe6q\xfbqk\x89t\xac8[\xf9\x04Y\xb8v\xd6>\x05\xf83\xc9Z\xdc\xeb\xab\xb6\xb6\xcce@xU\xc8j\x1e\x1b\x89\xc6\x0co\xf0\xc1\xcd\xfd\x0b\xba\xfe\x9f\xb0E\x1eM\x18Pa\x95\xedA\xbe\xbe\xe5!/\xceI\x87\xa4\xc9\xbf\xe0o\xe9\xfb\x1b\x90\xd68Y\x87`/\x9d\x80\x16\xe8\x8b\x88\xdcYWv\xb1\x8e\xab\x02\xfdsB\xc3#\x17TfJ\xd7@Ti\x15\x06t.\xc4\xc4\xbd:\x92\xe5>\x83!0>c\x16;\xb8t\xff\x85~&\x04!\x01\x81GRa\x06\xde\xa1\x81V\x9d\xea\xef\x81\xe0a(<h!j\xb8\x7f\xa4\x08\xf7\xf9\xf8\x97\xaaro\xd4\xae\xf0\x1a\xf9X;\xf8\xb4\x08C\xa7\xe7\xe5\xbe\xa1\xd8!\xe3x\xf7\x0c\x04\xfa\xa0\xffK\xc50\xb3\xf8tJ\xaf\x88\xfa\t\xbb#\xa0\t\x86rw\xc8\x7f\xd6\xd01\xb4\x11v\x14\x15,y\xd7\xbe\x95\xdbL\x9c\x9e\x16\xd5\xdb\xdd\xd1\xb2\x072\x00\xf8\xde\x94\xfe\x12\xba\n\x8b\xf6_U\xf0_g\xbe\x91\x9e\xce\xd8\xf9\xb2\xfea\x86f4\xac\xf7\x08\xbf\xbc\x1b\xa3\xbf009\xcd\xe0\xcc\xb2}\xd5\xfe\xe2\x8dL\xe5\xc4\xb3\x11i.\x06\x87\xeb%IH\x97\x06\xcf\x07\xdaZ\xd0\x84\x8ch\xf3\x1d\x8fc\xa2\xde\xbeK~\xeaV\x0f\xfeM\xb5\xd8\x9e\xa7\n\x04\xaez\x06!\xfb\xa4r\xa57\\\xf8G\xf9\x07\xb2\x84+\x905\xe6zq\x98\xa6\x07R\xb0A\x8f\xdbw\x04\xd9\x85{\xea\x87\x19\xa3E\x0f\xf0\xc9\x99oD\xcf\x8c\xd7\xfe\xfb&\xbe<\x1f\xe0\x7f-\xbd=\xdau\x8f\xa0\x99\xf0\x7f|\xb21\xa56\xcc\xf0\xe36"W\x0eG\xa7\x17\x90\x1f\x96\xa2\xcacDT\xf4YO1\x0f\xbd4\x0f\x0b\xc7<$\xb2\xafW\x06\x0c\xe4\x88iA\xa87\x10\xe6\x85#\xa7\x97[\xd1\x1e\x85\n\x0b &\xfb2\xae$\xcc\x98y\xf8\xb6\xd1:6U\x9c\xc1\x87\xb1Au\xaa\x8bk\x17\xf2O6F\x8d\x942r\xaeF\x83\xbe\xbb^\xa7\x94\xae B$B\xcb\x05\n\xa8FW\xc4\xe2j\x1a\x0e1X\xd4An\xeeo{}\x85\x04M\xe5\xf8\x00\xe5\x83\xb0\xa9\x94\xc2\xce\xeb\x8f\x1c\x0f5\xac\x95\xefT\x02\xd4{\xbbDK*\xa8l\xba<\x04A\xb05;kp\xdc[\xa9\xf3A\x1e\xca\r\xac?g\x0c\xb6\x1a\x18*\x88\xd2v\xbe\xb6J\xa8Q\xd2O\x8d\xbd(\x9ad\xdf\xe8\x9b\xb2\x14\xf8\x87\xcc#\xf5\xf1(\x8b\xad\xef\xd9Q\x02j\xa8\xf3\xbdr\xd9\xf1\xe6\xb8\x80\x0e\x807\xfe@x\xea\x85\xd0\xefuk\x01,\x1dFp\xcd3\x8b\x96 \x87\x84\xc5J\xcc_\xc7\n0\x8b\xca\x93\xfc\xd8l#\xcdL\x16\xd2\x88\xb8eTl\xf8\xa1\x1fi\xb7i\xc8\x1b\x7fkS\xf7\x1d\x1b{o]\xb7\x03\xa9\x92\xde8\xe4\xdf\xf9\xf4\x96h\xd8\xf9@\xe0\x86\xcf\xa3\xfb\\!o\x8c\xf9\xe9/1\x1b\x116=\xdb\x9d\xed\xeb\xe5}\xa8(e\x8dkp\x91\xc7\xec\x11\xd4\x11W\xb9\x0c\xb4\x8a\xc1rQY/Tc\xfb\xac\xf2\xc2\xefNT\x8e\x055s\xfb\x81\x9c\x9aE\xed93(\x83\xc6\xdd\xb4\xa0,\xe5>j1\x80\xf6=\x03\xf29\xc5y\xdb\xb6[\xf8\xb6T\x86\xba\xa4X,\xeb\xddv`\xd9\xe33\xefX\xaf\x07W}\x0f\x89\x05\x07\xab\xa5\xca`\xa8.\x8di\xdd\xc7\x1cp\xb2\xa0o^\x06\xac\xf0\xd5\xc9\xbe\x17\xe5\x9d\xb0\xc1\xb7\xc2\x9b\x12\xef\xbbN\x80\xb9\x9e\xf7\xa7O\x9a\xf4\x8e\x1cC\xca-\xcd\x8e\xd2]h\x89G\xfd\xd5\xf8u\x87\xd9\xbe\xcc\x80`&\x08\x99\xde\x819P\x9c\rd\xed\x82\xbb\xc3\x07\xe0\xd0\x05\xc7\xd8\x82\xbcm\x84=\x91NI\xce\x03\xb66\xf4OC4\xa6\xb3\xd9\xf4\xbf\xe6\xf5\xcf\xda\xec\xeeD\xfdK.\x05\xfe\xe8\x8c\xc1\xce{T\x9amTw"Km\xb3\xf9X\xd0\xce\x91\xc1\x1c`\x97\x13!"\xe3\x8c\xf1s\x8e\x16\xf5\x03\x80~\xb9rFC\x18R\xdc\x8c\xd5\x00N\xec\xf03=e1Dv\xc2\x9fGc\x04\x1f;\xb20\xaeJ\x19JSS)\xa5/\x80$\xc3+8\xed\xe3d\xbb&\xfe\xa9\x960\x82\xbf\xb7[\x085\x1d\xea\xabt\x89w-7\x1c\r\xac\x1f\x90@\xa4\x95b\xae<\xc9\x14\xd9\x1cy\xb1@0\x15\x18\xa6\x11\x9f\xd4\x00c\xccd\xcbtD\xf7S$\x0e\x1fJL\x9a\x90\xa8T+/\x17\x0eI\xdf\xfb}\n\x12C\xb9%\xa1\xb6\x89~\xa1\x83O\t\xba\xa1\x07G\xd3\xe7\xa2\xdc\xb4\xbc\xa7\x03\xd0.\xeb\x0e\xa2\xa4eHd\xac\x9a\x02\\ fj\xcc\xaf\x19\xf3U[:\xbcp~\x90\x9bEy\xc1#\x0b#(\xee;\x86\xf4;\xc2\x9c\xdf\xe8\xcc\xb3@\x05\xf33\xc2\x00I\xd8\xff\xb79#n\x9di\xa0\xb9\xdf\xc7\xa3\x8f\xd8\xcc\x88\xdd\xf6=\xd7\xb4\x1bGr2\x01Hv;\xf3\x86\xdf\xe9:r$\xcf\xf8A`\x906\xa4\xe3\xae\x15\x1f\x8d\x86$\x18[\xf6\xd1\xf9\xf2,\xa9\xcf\xec\xc6\x04\x0e\xa1\x076\xe5\xe6}q\xc3\x80\x94rO\x81\x96.46@\x08\xb2\x1en\xf0K\xe92\xc6\xe6\x9c\x97\xce\x8b$/^\x13\r\xa9\xc4\x13d\x03\x1a\ru,7\xb7k\xfd,\\\x8f}!\xa5\xc7\x82\xee\xf7\xa5(\x00\xd4\xb0U\x02Bo\xc0\x9f\xf6\xdcM\xd6-\xae2^V\xb8-\x88`\x17\xb1\xae\x9es\x02w1\x82\xdb2xV$\xa5\x99\xca\xc3%\x8ewT\xee\xd0\x8a?\x90\xa2\xea\xcf\xdd\xc2\x03\xe8\x8f\xf6Jp\xd7\xa2\x7f\xa1\xe1\xb3@e<Bn\x86`M6\x8f9[\x81\x01L\x9b\x19o\xbe\xe7\xde\xccY\xd0\x8a=70s\x17\xee|d\xd9\xa5\x19\xd8\'\x15\xa7\x84\x05Ats\xd2\\&r\xa0 \xc6\x93\xa3\x86\x9f\xa7\x8b\x9f\x80lB3\x8d\xdf\x19T\xf4\xc6E\xa0EZb\xb8\x8elk\x8b\xcb4l\xceO\xc0BJJ\xe3+\xfc\x08V\xc9x\x98\xa3q\xa9h\xb9K)\x1c\xdc\x0cj\xe6y\xc0\xa8\xb9h\xab+\x86\x14w\x97I\x1f\tF\xd1\xceT\xd6:\x1e\x9f\xff\rL\xa5e\xcf\xa4\xdb\xd9\xe2\xb4\x8c`\xe4@\xeaT\xda\x15\xba\x11\xc7[6\x81\xd6\x13\xab\xfb\xe4k\xbe\xdf*\xdc\x9f\xa3\xee\x01[\x15\xd0/\xd5\x1d\x17j\x08s~\xd7\x9b\x03?\x81\x84\xb6Z\xdd\xbfE\xe5\xdcv\x17\xc9\xd6Z"\xad0-w>\xa6\t\x91\xab`\xf3\x85\x89\x14\xdb\xee\xc5\x05\xe2\xcen\x8f \x92b4\xab=\x81\x0b\t5K\xabi\x8aVt\xfd(\xe6;\xcc\x18a\xf8\xf3\xec/`\x9bo\x95fK\xd37;\xb7k\xa4\xb5\xe3\xb2 "\xc6\xae\x01\x98\xf3\x01\xd4\xaac\xa2\x93\x0c\xd9\xf0\xa8\xaf\xff\xc4\xab\xcak\xda\x05R&\xe6I \xa2\x86\x9d\xc7\xbc\xa16P\xda\xc5\xfe\xf5\xe7\x11\nu\x8b\xfc^J\xab\xa2\xf2\xb48\x06\xc4i:F\x95WQ\xf5\xe8_\xed\x17qHJF:*D\xb6\xfb\xc4H6\x7fgd\x15S\xb4H\xac\xf3fV\xa9ok\x9e\x93\xeb\x9a\xa5\x95\xc9\xab\xda\x83\x99<HU\x97\xb5_\xbbtS\x1d\xf5t\xcb\xab<\xc7\xb8_\x0b\xdc\xd5\x1d\x07e\xe0\x18*\xf8\xdb`I\x86\xb3F\x8b\xab\xa7?\xcds\xe7\xc2{\x0f\x0e\xce:a/+{S\xadi\x07\xc9\xf5A\x17\xa3\xe3\xa1>\xbcS]\xc7\xc5a\xe2\xe2\x89\x04[q}\x01JaA\x15E<\x1d\xba\x80a\x8396\x91\x17\xaa\x93Qu5\x1c\x12hiH\xa7\xad\xc8K\x12\xd3\xbe\xc0#i\xa0\x9a\xab\x1b!\xae\'+k\xd7i\xce\x02\xb7\x16\xf8iy\x17?r\'\xbd\xe3=\x9f2\x934\xc4lh\xe8\x88\xc7=R\xff\xd6\xfb\xf7\x01\xb9\x9f\xce\xc1\xd9Z^e\x80j\x9cX\xa6\xdd\x00`\xbb\xf0\xb2\x1eZ\x05\xefAK\xd5\xee\xb0\xeb*\x1d\x9f\xe2\n\xda_\x05\xcf\xc1\xdf\xf9d*L\x94!B\x07%\xc9U#\xe0\xa4\x14\x9c\xe1%_3\xdd\xef\xabm\x1b\xbd\xb3\x19i{Y\x826\r\x13y\nE\xa9a\xb2\xb9\xe4\xfb$\xfc<{Ze\xc6\x13p\x91\x83U\x80h\x03m9\x8c\x19\xec\x04K\r\xc2\xf3i\x06z\n\xd9\xd9\xfbq\x04\x89\xde\xf3\xa8U\x96\x95\xf3\x7f\re\xda\xd9\x90\x1cQs\x05w\xff\xb2]\xcal\xff\xa6\xc6\xd6$\xb3\x01\\,\x18\'8\x0b\xdb\xcdV\xc6p\xe4v\xd0]R\x8dM\x84\xb4\r\xec\x90\xb3\x08\xdbA\xf9\xd8\x8fJ\xa1\xff\x91|\xc2F>Cm\x83\xf2\xc4,\x02\xdb\xe3\xa4]\xe4\xca.\xff\x8f\'\t\xd8T\xaez/\x82\x8e9s\xdfww\xac\x0b\x1cp\x1dk\rw\xe5m\xcd\xe5\xb2\xaa\x88s\xdcN\x90ei\x89u\xd3$7\xce9&$\t\x07\x1el\xfa\xd0C\xee\x99\x9a\x1f\xb1[xi\xb5k!\xec \xbaX\xba\xbeG\xde\x00\xad\xe3e\x8f\x1d\n\xdbIP\xe6\'\xb1\x82\t\xcafG\xd8\xfdn\n\xdf\x10^-\xb6%3\x9bq\xf8\xb7\xdc\x17q\xaeez\x1d\xa6[\xbf\xf4\x0eHqqD>\xec\x96\x11\xfdl\x0c\x8b\x01\xd0\xe9\xceKi\x98nT\xe0\x82\xba\xcf\x08\x8f\x8d#\xf4\xfe5\x9e\xd7e\x14\xed\x95\x04\x1f\xc4\x9f\x87\xafOO\xfd\xdf\xf9`\xa0c=\xcd\xfd(\xee\x98\x88\xa55\xd5\xfa}\xe5\t\xfc\xad<\xd9\xda\xdf\xc1\\\xdd\xf1yE\xb5\xf2>\x14\x05\x98\xd8\xe0\xc9=\x9b\xd8\x88K\\^\xf4\xdd\x16^\xbahA\x9ck\ta>\x13\xc3#\xa8\x18\x94\xe0C\xb7\xd3\xfc\xeb\xbf\x05\xa4\x85\x8c>\x8f\xc5\xa0\xa7l\x89|#\xb84f\x16\x12\x15"U*g\xe3\xea\x93\x99\x9c/S\x83\xc2\xb2u\x1bm\x91\xea\xdfMe&\x93\xa1\x02\xe5\x05P*\xae;/\x01\xcc\x06,[\x19r\x8e\xf1\xf5\x14Cj\x9e`R\xe7\x05\xd5\xa7\xfc\xb90:^\xde\xbe\\g\xd1\xb2O`\xa4\xaccR\xc8\xcb*S\x00\x13%\xf4\xcbWm\xfaX\xc6\xb7\xad\xd0\xd68l\x0e\xca\x87\x981\xb8r\xa6,\xfa\x8e\r^D\xe0t\x07N\'\xb4b\x94\xb6\xd4\xec\xe4 \xb1 \xec3\xa7?o\r\x9b\x16\xc7\xa8\t\xe4\xb0\xe9_\xbdm\xb9\x0f\x15K\x85\xa80l\x9e\x19\xbc\xdc\xfd\x8fh\x0c\xa9\x94\x18\x15\xea\x8b-/\xd3\xf5\x7f\x87\xac\xf8\xa6>(QzIh\x96\xfc\xf97\x89DY\x9c\xa9\x9en\xd3\xef@\xb6wB\x98\xcfMj\xc7\x82p\xf9\xd8\xe7+\x9f\xd1\xfd\xab\xa1\xdcV5\xa5[czo\xaf\x19\xc4YU*\x1a\x8c}\xd9\x87\x10\x02\x97\x9d\xcc\xdc\x80\x13\xab\xd1`\x85\xd5\x02\xc2\x12m\x1aM\xcb\xa6\x86>Q\xa4\xf8p\xb1\'\xa0\x9e\xea\xd6\x14\xfc98\xf0\x94\x07\x9b7\x0c/\x00\xcfu\x99\xbf-\r -tv\xbf,\xa2\xc3\xb7\x7f\xd2\xb2\xb4\xc9\xd4hh\xae\xdb')
|
obfuscated/pyarmor_runtime_000000/__init__.py
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
# Pyarmor 8.5.11 (trial), 000000, 2024-10-10T13:10:41.990758
|
2 |
+
from .pyarmor_runtime import __pyarmor__
|
pipeline.py
ADDED
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import Pipeline, AutoTokenizer, AutoModelForCausalLM
|
2 |
+
import torch
|
3 |
+
import re
|
4 |
+
from contextlib import nullcontext
|
5 |
+
from neurons.miners.model.prompts import (
|
6 |
+
RELEVANCY_PROMPT,
|
7 |
+
HALLUCINATION_PROMPT,
|
8 |
+
HALLUCINATION_MISTAKES_PROMPT,
|
9 |
+
ATTRIBUTION_PROMPT,
|
10 |
+
ATTRIBUTION_MISTAKES_PROMPT,
|
11 |
+
SUMMARY_COMPLETENESS_PROMPT,
|
12 |
+
SUMMARY_MISTAKES_PROMPT
|
13 |
+
)
|
14 |
+
import time
|
15 |
+
|
16 |
+
class DeValPipeline(Pipeline):
|
17 |
+
|
18 |
+
def __init__(self, model=None, tokenizer=None, model_dir = None, **kwargs):
|
19 |
+
self.max_tokens = 250
|
20 |
+
self.temperature = 0.5
|
21 |
+
self.top_p = 0.95
|
22 |
+
self.top_k = 0
|
23 |
+
|
24 |
+
self.system_prompt = "You are an evaluation LLM. Your job is generate a score demonstrating how well the LLM you are evaluating responded and to identify its mistakes."
|
25 |
+
|
26 |
+
# init tokenizer and model then attach
|
27 |
+
self.device = "cuda" if torch.cuda.is_available() else "cpu"
|
28 |
+
tokenizer = AutoTokenizer.from_pretrained(model_dir)
|
29 |
+
model = AutoModelForCausalLM.from_pretrained(
|
30 |
+
model_dir,
|
31 |
+
device_map=self.device,
|
32 |
+
torch_dtype=torch.float16 if self.device == "cuda" else torch.float32
|
33 |
+
)
|
34 |
+
print(f"putting model to {self.device}")
|
35 |
+
super().__init__(model=model, tokenizer=tokenizer, **kwargs)
|
36 |
+
|
37 |
+
def _sanitize_parameters(self, **kwargs):
|
38 |
+
preprocess_kwargs = {}
|
39 |
+
for k, v in kwargs.items():
|
40 |
+
preprocess_kwargs[k] = kwargs[k]
|
41 |
+
return preprocess_kwargs, {}, {}
|
42 |
+
|
43 |
+
def _gen_input_ids(self, prompt: str) -> str:
|
44 |
+
messages = [
|
45 |
+
{"role": "system", "content": self.system_prompt},
|
46 |
+
{"role": "user", "content": prompt},
|
47 |
+
]
|
48 |
+
|
49 |
+
input_ids = self.tokenizer.apply_chat_template(
|
50 |
+
messages,
|
51 |
+
add_generation_prompt=True,
|
52 |
+
return_tensors="pt"
|
53 |
+
).to(self.device)
|
54 |
+
|
55 |
+
return input_ids
|
56 |
+
|
57 |
+
|
58 |
+
def _get_prompt(
|
59 |
+
self,
|
60 |
+
task: str,
|
61 |
+
) -> str:
|
62 |
+
if task == "attribution":
|
63 |
+
return {
|
64 |
+
"score": ATTRIBUTION_PROMPT,
|
65 |
+
"mistakes": ATTRIBUTION_MISTAKES_PROMPT,
|
66 |
+
}
|
67 |
+
elif task == 'summary_completeness':
|
68 |
+
return {
|
69 |
+
"score": SUMMARY_COMPLETENESS_PROMPT,
|
70 |
+
"mistakes": SUMMARY_MISTAKES_PROMPT,
|
71 |
+
}
|
72 |
+
elif task == "hallucination":
|
73 |
+
return {
|
74 |
+
"score": HALLUCINATION_PROMPT,
|
75 |
+
"mistakes": HALLUCINATION_MISTAKES_PROMPT,
|
76 |
+
}
|
77 |
+
elif task == "relevancy":
|
78 |
+
return {"score": RELEVANCY_PROMPT}
|
79 |
+
else:
|
80 |
+
raise ValueError(f"Unable to find the correct task: {task}")
|
81 |
+
|
82 |
+
def _parse_score_response(self, response: str) -> float:
|
83 |
+
float_regex = "((0\.\d+?|1\.0+?|0|1|\.\d+))"
|
84 |
+
match = re.search(f"response: {float_regex}", response.lower())
|
85 |
+
if match:
|
86 |
+
score = match.group(1)
|
87 |
+
print("score ", score)
|
88 |
+
return float(score.strip()) if score != "" else -1.0
|
89 |
+
else:
|
90 |
+
print("Unable to parse eval score using regex")
|
91 |
+
return -1.0
|
92 |
+
|
93 |
+
def _parse_mistakes_response(self, response: str) -> list[str]:
|
94 |
+
response = response.split("\n")
|
95 |
+
response = [r.strip() for r in response]
|
96 |
+
return [r for r in response if r != '']
|
97 |
+
|
98 |
+
|
99 |
+
def preprocess(
|
100 |
+
self,
|
101 |
+
inputs,
|
102 |
+
tasks: list[str],
|
103 |
+
rag_context: str,
|
104 |
+
query: str | None,
|
105 |
+
llm_response: str,
|
106 |
+
):
|
107 |
+
# generate our prompts
|
108 |
+
prompts = self._get_prompt(
|
109 |
+
task=tasks[0],
|
110 |
+
)
|
111 |
+
|
112 |
+
# prep score evaluation
|
113 |
+
score_prompt = prompts.get("score")
|
114 |
+
score_prompt = score_prompt.format(rag_context = rag_context, query = query, llm_response = llm_response)
|
115 |
+
score_input_ids =self._gen_input_ids(score_prompt)
|
116 |
+
|
117 |
+
# prep mistake identification
|
118 |
+
mistakes_prompt = prompts.get("mistakes", None)
|
119 |
+
|
120 |
+
# we do not evaluate for all tasks
|
121 |
+
if mistakes_prompt:
|
122 |
+
mistakes_prompt = mistakes_prompt.format(rag_context = rag_context, llm_response = llm_response)
|
123 |
+
mistakes_input_ids =self._gen_input_ids(mistakes_prompt)
|
124 |
+
else:
|
125 |
+
mistakes_input_ids = None
|
126 |
+
|
127 |
+
|
128 |
+
return {
|
129 |
+
"score_input_ids": score_input_ids,
|
130 |
+
"mistakes_input_ids": mistakes_input_ids,
|
131 |
+
}
|
132 |
+
|
133 |
+
def _forward(self, model_inputs):
|
134 |
+
score_input_ids = model_inputs['score_input_ids']
|
135 |
+
mistake_input_ids = model_inputs.get('mistakes_input_ids', None)
|
136 |
+
|
137 |
+
terminators = [
|
138 |
+
self.tokenizer.eos_token_id,
|
139 |
+
self.tokenizer.convert_tokens_to_ids("<|eot_id|>")
|
140 |
+
]
|
141 |
+
with torch.cuda.amp.autocast() if self.device == "cuda" else nullcontext():
|
142 |
+
|
143 |
+
start_score_time = time.time()
|
144 |
+
# run eval score
|
145 |
+
score_outputs = self.model.generate(
|
146 |
+
input_ids=score_input_ids,
|
147 |
+
max_new_tokens=self.max_tokens,
|
148 |
+
eos_token_id=terminators,
|
149 |
+
do_sample=True,
|
150 |
+
temperature=self.temperature,
|
151 |
+
top_p=self.top_p,
|
152 |
+
)
|
153 |
+
score_response = score_outputs[0][score_input_ids.shape[-1]:]
|
154 |
+
print(f"Score generation time: {time.time()-start_score_time}")
|
155 |
+
|
156 |
+
# run mistakes eval score
|
157 |
+
start_mistakes_time = time.time()
|
158 |
+
mistakes_response = None
|
159 |
+
if mistake_input_ids is not None:
|
160 |
+
mistakes_outputs = self.model.generate(
|
161 |
+
input_ids=mistake_input_ids,
|
162 |
+
max_new_tokens=self.max_tokens,
|
163 |
+
eos_token_id=terminators,
|
164 |
+
do_sample=True,
|
165 |
+
temperature=self.temperature,
|
166 |
+
top_p=self.top_p,
|
167 |
+
)
|
168 |
+
mistakes_response = mistakes_outputs[0][score_input_ids.shape[-1]:]
|
169 |
+
print(f"Mistakes generation time: {time.time()-start_mistakes_time}")
|
170 |
+
|
171 |
+
|
172 |
+
return {
|
173 |
+
"score_response": score_response,
|
174 |
+
"mistakes_response": mistakes_response
|
175 |
+
}
|
176 |
+
|
177 |
+
def postprocess(self, response):
|
178 |
+
score_response = response.get('score_response')
|
179 |
+
mistakes_response = response.get('mistakes_response', None)
|
180 |
+
|
181 |
+
# decode and parse score
|
182 |
+
score_decoded = self.tokenizer.decode(score_response, skip_special_tokens=True)
|
183 |
+
score_completion = self._parse_score_response(score_decoded)
|
184 |
+
|
185 |
+
# decode and parse mistakes
|
186 |
+
mistakes_completion = None
|
187 |
+
if mistakes_response is not None:
|
188 |
+
mistakes_decoded = self.tokenizer.decode(mistakes_response, skip_special_tokens = True)
|
189 |
+
mistakes_completion = self._parse_mistakes_response(mistakes_decoded)
|
190 |
+
|
191 |
+
return {
|
192 |
+
'score_completion': score_completion,
|
193 |
+
'mistakes_completion': mistakes_completion
|
194 |
+
}
|
195 |
+
|
196 |
+
|
197 |
+
|
198 |
+
if __name__ == "__main__":
|
199 |
+
from transformers.pipelines import PIPELINE_REGISTRY
|
200 |
+
|
201 |
+
PIPELINE_REGISTRY.register_pipeline("de_val", pipeline_class=DeValPipeline)
|
202 |
+
|
203 |
+
model_dir = "../model"
|
204 |
+
|
205 |
+
tasks = ['relevancy']
|
206 |
+
# rag_context = "The earth is round. The sky is Blue."
|
207 |
+
# llm_response = "The earth is flat."
|
208 |
+
# query = "What color is the sky"
|
209 |
+
rag_context = "water is liquid. Tree leaves are green in summer."
|
210 |
+
llm_response = "water is solid."
|
211 |
+
query = "what color are tree leaves in summer"
|
212 |
+
|
213 |
+
pipe = DeValPipeline("de_val", model_dir = model_dir)
|
214 |
+
print(pipe("", tasks=tasks, rag_context=rag_context, query=query, llm_response=llm_response))
|
prompts.py
ADDED
@@ -0,0 +1,174 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
RELEVANCY_PROMPT = """\
|
2 |
+
Your goal is to determine if the provided LLM response is relevant to the user's query.\
|
3 |
+
You should disregard whether the response is factually accurate or not and only be concerned with relevance.
|
4 |
+
|
5 |
+
In this task, I will provide you with the following:
|
6 |
+
- User Query: the question asked by the user
|
7 |
+
- LLM Response: a response to the user derived from an input context
|
8 |
+
|
9 |
+
|
10 |
+
You should return a score of 0 if the response is not relevant and a score of 1 if the response is relevant.
|
11 |
+
|
12 |
+
# User Query
|
13 |
+
{query}
|
14 |
+
|
15 |
+
# LLM response
|
16 |
+
{llm_response}
|
17 |
+
|
18 |
+
|
19 |
+
Return your response if the format of "Response: score" where the score is your estimation on relevancy. Return no other text
|
20 |
+
"""
|
21 |
+
|
22 |
+
|
23 |
+
HALLUCINATION_PROMPT = """\
|
24 |
+
Your goal is to determine if the provided LLM response is hallucinating given the provided RAG context. \
|
25 |
+
|
26 |
+
In this task, I will provide you with the following:
|
27 |
+
- RAG Context: the provided context which will act as your source of truth
|
28 |
+
- LLM Response: a series of claims derived from the RAG context
|
29 |
+
|
30 |
+
You should return a score between 0 and 1 based on how accurate you perceive the claims to be. \
|
31 |
+
- If the response does not hallucinate at all then return a value of 1
|
32 |
+
- If the entire response is hallucinated then return a value of 0
|
33 |
+
- if half of the response is hallucinated then return a score of 0.5
|
34 |
+
|
35 |
+
# RAG Context
|
36 |
+
{rag_context}
|
37 |
+
|
38 |
+
# LLM Response
|
39 |
+
{llm_response}
|
40 |
+
|
41 |
+
|
42 |
+
Return your response if the format of "Response: score" where the score is your estimation on relevancy. Return no other text
|
43 |
+
"""
|
44 |
+
|
45 |
+
HALLUCINATION_MISTAKES_PROMPT = """\
|
46 |
+
Your goal is to extract the hallucinations from the provided respnse given the underlying RAG context if there are any. \
|
47 |
+
Essentially, you must compare the response to the RAG context, determine if any of the claims in the response are false, and \
|
48 |
+
return back any false claims you identify.
|
49 |
+
|
50 |
+
In this task, I will provide you with the following:
|
51 |
+
- RAG Context: the provided context which will act as your source of truth
|
52 |
+
- LLM Response: a series of claims derived from the RAG context
|
53 |
+
|
54 |
+
Requirements:
|
55 |
+
- You must return false claims verbatim as they appear in the LLM response
|
56 |
+
- You must return each false claim separated by a newline character
|
57 |
+
- Do not return any other text unless you consider it to be false based on the provided RAG context
|
58 |
+
|
59 |
+
# RAG Context
|
60 |
+
{rag_context}
|
61 |
+
|
62 |
+
# LLM Response
|
63 |
+
{llm_response}
|
64 |
+
|
65 |
+
Do not return any other text beside the false claims separated by a newline character.
|
66 |
+
"""
|
67 |
+
|
68 |
+
|
69 |
+
|
70 |
+
ATTRIBUTION_PROMPT = """\
|
71 |
+
Your goal is to determine if the provided LLM response is mis-attributing action items to the wrong person given the provided RAG context. \
|
72 |
+
|
73 |
+
In this task, I will provide you with the following:
|
74 |
+
- RAG Context: the provided context which will act as your source of truth
|
75 |
+
- LLM Response: a series of summarized action items attributed to a participant derived from the RAG context
|
76 |
+
|
77 |
+
For example, if the RAG context says that Person A must achieve Task 1, but the LLM response incorrectly says that Person B must achieve Task 1 \
|
78 |
+
then this would be a misattribution
|
79 |
+
|
80 |
+
You should return a score between 0 and 1 based on how accurate you perceive the attributions to be. \
|
81 |
+
- If the response attributes action items with complete accuracy then return a value of 1
|
82 |
+
- If the entire response is misattributed then return a value of 0
|
83 |
+
- if half of the response is misattributed then return a score of 0.5
|
84 |
+
|
85 |
+
# RAG Context
|
86 |
+
{rag_context}
|
87 |
+
|
88 |
+
# LLM Response
|
89 |
+
{llm_response}
|
90 |
+
|
91 |
+
|
92 |
+
Return your response if the format of "Response: score" where the score is your estimation on relevancy. Return no other text
|
93 |
+
"""
|
94 |
+
|
95 |
+
ATTRIBUTION_MISTAKES_PROMPT = """\
|
96 |
+
Your goal is to extract the misattributed action items from the provided respnse given the underlying RAG context if there are any. \
|
97 |
+
Essentially, you must compare the LLM response to the RAG context, determine if any of the action items in the response are misattributed, and \
|
98 |
+
return back any misattributed action items you identify.
|
99 |
+
|
100 |
+
For example, if the RAG context says that Person A must achieve Task 1, but the LLM response incorrectly says that Person B must achieve Task 1 \
|
101 |
+
then this would be a misattribution. You must return this action item if it was misattributed.
|
102 |
+
|
103 |
+
|
104 |
+
In this task, I will provide you with the following:
|
105 |
+
- RAG Context: the provided context which will act as your source of truth
|
106 |
+
- LLM Response: a series of summarized action items attributed to a participant derived from the RAG context
|
107 |
+
|
108 |
+
Requirements:
|
109 |
+
- You must return misattributed action items verbatim as they appear in the LLM response
|
110 |
+
- You must return each misattributed action items separated by a newline character
|
111 |
+
- Do not return any other text unless you consider it to be misattributed based on the provided RAG context
|
112 |
+
|
113 |
+
# RAG Context
|
114 |
+
{rag_context}
|
115 |
+
|
116 |
+
# LLM Response
|
117 |
+
{llm_response}
|
118 |
+
|
119 |
+
Do not return any other text beside the misattributed action items separated by a newline character.
|
120 |
+
"""
|
121 |
+
|
122 |
+
|
123 |
+
SUMMARY_COMPLETENESS_PROMPT = """\
|
124 |
+
Your goal is to determine if the provided LLM response is a complete summary given the provided RAG context. \
|
125 |
+
|
126 |
+
In this task, I will provide you with the following:
|
127 |
+
- RAG Context: the provided context which will act as your source of truth
|
128 |
+
- LLM Response: a series of claims derived from the RAG context
|
129 |
+
|
130 |
+
|
131 |
+
For example, if the RAG context contains important information that should be summarized then this would be considered an incomplete summary.
|
132 |
+
|
133 |
+
You should return a score between 0 and 1 based on how accurate you perceive the claims to be. \
|
134 |
+
- If the response is a perfect summary of the RAG context then return a value of 1
|
135 |
+
- If the response is missing all important information from RAG context then return a value of 0
|
136 |
+
- if the response is missing half of the important information from the RAG context then return a score of 0.5
|
137 |
+
|
138 |
+
# RAG Context
|
139 |
+
{rag_context}
|
140 |
+
|
141 |
+
# LLM Response
|
142 |
+
{llm_response}
|
143 |
+
|
144 |
+
|
145 |
+
Return your response if the format of "Response: score" where the score is your estimation on relevancy. Return no other text
|
146 |
+
"""
|
147 |
+
|
148 |
+
|
149 |
+
SUMMARY_MISTAKES_PROMPT = """\
|
150 |
+
Your goal is to identify any important topics in the provided RAG context that is not included in the LLM response. \
|
151 |
+
Essentially, there is a possibility that the provided summary provided in the LLM response is missing key information, \
|
152 |
+
and it is your job to identify this missing information and then summarize it. You must return a summarized version of any \
|
153 |
+
missing key information that you identified.
|
154 |
+
|
155 |
+
For example, if the RAG context contains important information that should be summarized then this would be considered an incomplete summary.
|
156 |
+
|
157 |
+
In this task, I will provide you with the following:
|
158 |
+
- RAG Context: the provided context which will act as your source of truth
|
159 |
+
- LLM Response: a series of claims derived from the RAG context
|
160 |
+
|
161 |
+
Requirements:
|
162 |
+
- You must return a summary of any key topics or important information from the RAG context that is not already present in LLM response
|
163 |
+
- Do not summarize any information that is already included in the LLM response. This would be considered a failure.
|
164 |
+
- You must return each summary separated by a newline character
|
165 |
+
- Do not return any other text unless you consider it to be a summary of missing information from RAG context.
|
166 |
+
|
167 |
+
# RAG Context
|
168 |
+
{rag_context}
|
169 |
+
|
170 |
+
# LLM Response
|
171 |
+
{llm_response}
|
172 |
+
|
173 |
+
Do not return any other text beside the summaries separated by a newline character.
|
174 |
+
"""
|