├── .gitignore ├── examples ├── input_1.cpp ├── input_P3920.cpp ├── output_1.cpp └── output_P3920.cpp ├── README.md ├── optimize.sh ├── template.cpp ├── converter.cpp └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | converter 2 | -------------------------------------------------------------------------------- /examples/input_1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | 4 | auto f(integral auto x){return x*x;} 5 | 6 | int main(){ 7 | vector> v; 8 | for(int i=1;i<=10;i++){ 9 | v.push_back(async(launch::async,[=](){ 10 | this_thread::sleep_for(100ms); 11 | printf("%d\n",f(i)); 12 | })); 13 | } 14 | for(auto&x:v)x.wait(); 15 | return 0; 16 | } 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # luogu-code-optimizer 2 | 3 | 使用base64编码和[无文件ELF执行](https://blog.spoock.com/2019/08/27/elf-in-memory-execution/)绕过洛谷对于文件访问的限制,完成的C++的Babel.js类似品。更多细节详见[我的博客](https://2o181o28.github.io/2020/10/20/%E6%97%A0%E6%96%87%E4%BB%B6ELF%E6%89%A7%E8%A1%8C%E4%BB%A5%E5%8F%8A%E6%B4%9B%E8%B0%B7%E6%89%8B%E5%8A%A8O2/)。 4 | 5 | ## 使用方法 6 | 7 | ```bash 8 | ./optimize.sh input.cpp output.cpp # 将input.cpp优化为output.cpp 9 | ./optimize.sh input.cpp # 优化input.cpp并覆盖input.cpp,将引发警告 10 | ./optimize.sh input output.cpp # 将任意的可执行文件input转化为output.cpp 11 | ``` 12 | 13 | 此`output.cpp`可用于洛谷提交等。例子:[使用output.cpp AC的紫荆花之恋 洛谷提交](https://www.luogu.com.cn/record/46375489)。 14 | 15 | 脚本返回值`0`代表执行成功;`1`代表文件操作失败了;`2`代表编译错误。 16 | 17 | 比如说你想要提交一个开了最高编译优化,使用C++20标准,Clang++编译器,链接pthread库的代码`1.cpp`(显然洛谷不支持这些功能),将其变成可以使用C++98标准,古董g++编译器,不带任何编译开关编译的代码`2.cpp`: 18 | ```bash 19 | clang++ 1.cpp -o 1 -Ofast -march=native -std=c++20 -lpthread && strip 1 20 | ./optimize.sh 1 2.cpp 21 | ``` 22 | 23 | 不保证可以在非Ubuntu 20.04的操作系统上正常运行。 24 | -------------------------------------------------------------------------------- /optimize.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | fail(){ 4 | echo "ERROR: ""$1" 5 | exit $2 6 | } 7 | 8 | main(){ 9 | local bs="`dirname "$0"`" 10 | [ -f "${1:?no input file specified}" ] || fail "cannot find input file ""$1" 1 11 | local of="$2" 12 | if(($#==1)); then of="$1";echo "WARNING: changes will be written back to the original file"; fi 13 | touch "$of" 14 | if(($?!=0)); then fail "failed to create output file""$of" 1; fi 15 | local n="$1" 16 | local n1=${n%.cpp} 17 | local flg=0 18 | if [ a"$n" != a"$n1" ]; then 19 | if [ ! -f "$n1" ]; then flg=1; fi 20 | g++ "$n" -o "$n1" -Ofast -march=native 21 | if(($?!=0)); then fail "compile error, aborting" 2; fi 22 | strip "$n1" 23 | n="$n1" 24 | else 25 | [ -x "$n" ] || fail "input binary file ""$n"" does not have execute permission" 1 26 | fi 27 | if [ ! -f "$bs""/converter" ]; then 28 | g++ "$bs""/converter.cpp" -o "$bs""/converter" -O2 29 | if(($?!=0)); then fail "compile error, aborting" 2; fi 30 | fi 31 | "$bs""/converter" "$n" "$of" 32 | if((flg==1)); then rm "$n"; fi 33 | } 34 | 35 | main $@ 36 | -------------------------------------------------------------------------------- /template.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | const char *prog= 8 | 9 | ;char dtb[128],tmp[1<<20],buf[1<<20],cmd[128]; 10 | void init_tb(){ 11 | int p=0; 12 | for(int i='A';i<='Z';i++)dtb[i]=p++; 13 | for(int i='a';i<='z';i++)dtb[i]=p++; 14 | for(int i='0';i<='9';i++)dtb[i]=p++; 15 | dtb[(int)'>']=p++;dtb[(int)'/']=p++; 16 | dtb[(int)'=']=0; 17 | } 18 | int from_base64(const char *c,char *o,int l){ 19 | assert((l&3)==0);int p=0,r=l/4*3; 20 | for(int i=0;i>16;o[p++]=s>>8&255;o[p++]=s&255; 23 | if(c[i+2]=='=')--r; 24 | if(c[i+3]=='=')--r; 25 | } 26 | o[p++]=0;return r; 27 | } 28 | int from_rle(const char *c,char *o,int l){ 29 | int p=0; 30 | for(int i=0;i 2 | using namespace std; 3 | using uch=unsigned char; 4 | char etb[64]; 5 | void init_tb(){ 6 | int p=0; 7 | for(int i='A';i<='Z';i++)etb[p++]=i; 8 | for(int i='a';i<='z';i++)etb[p++]=i; 9 | for(int i='0';i<='9';i++)etb[p++]=i; 10 | etb[p++]='>';etb[p++]='/'; 11 | } 12 | int to_base64(const char *c,char *o,int l){ 13 | int p=0; 14 | for(int i=0;i>18];o[p++]=etb[s>>12&63]; 17 | o[p++]=i+1>6&63]:'='; 18 | o[p++]=i+2=2){ 28 | int q=p; 29 | for(int t=j-i;t;t/=10)o[p++]=t%10+37; 30 | reverse(o+q,o+p); 31 | } 32 | } 33 | o[p]=0;return p; 34 | } 35 | char buf[1<<20],tmp[1<<20]; 36 | 37 | int main(int argc,char **argv){ 38 | assert(argc==3); 39 | init_tb(); 40 | freopen(argv[1],"r",stdin); 41 | 42 | int l=fread(buf,1,1<<20,stdin); 43 | l=to_base64(buf,tmp,l); 44 | to_rle(tmp,buf,l); 45 | string s(argv[0]); 46 | while(s.size()&&s.back()!='/')s.pop_back(); 47 | freopen((s+"template.cpp").c_str(),"r",stdin); 48 | freopen(argv[2],"w",stdout); 49 | for(int i=0;i<7;i++){ 50 | fgets(tmp,1<<10,stdin); 51 | fputs(tmp,stdout); 52 | } 53 | putchar('"'); 54 | fputs(buf,stdout); 55 | putchar('"'); 56 | while(fgets(tmp,1<<10,stdin))fputs(tmp,stdout); 57 | return 0; 58 | } 59 | -------------------------------------------------------------------------------- /examples/input_P3920.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | using namespace __gnu_pbds; 4 | using ll=long long; 5 | const int maxn=200010; 6 | int n,fa[maxn],siz[maxn],son[maxn],vis[maxn],Dep[maxn],Fa[maxn][20]; 7 | int sw[maxn],S,R,mn,dep[maxn],dp1[maxn],r[maxn],Dis[maxn]; 8 | struct edge{int v,w;}; 9 | vector v[maxn]; 10 | ll now; 11 | templatestruct Splay:tree,rb_tree_tag,tree_order_statistics_node_update>{ 12 | int qry(int x){return this->order_of_key(T{x,n+1});} 13 | void Clear(){Splay x;this->swap(x);} 14 | }; 15 | Splay> tr[maxn],t1[maxn]; 16 | void getrt(int p,int fa){ 17 | siz[p]=1;int mx=-1; 18 | for(edge&e:v[p])if(e.v!=fa&&!vis[e.v]) 19 | dep[e.v]=dep[p]+e.w,getrt(e.v,p), 20 | siz[p]+=siz[e.v],mx=max(mx,siz[e.v]); 21 | mx=max(mx,S-siz[p]); 22 | if(mx=Dep[v])u=Fa[u][k]; 45 | if(u==v)return ans-2*Dis[u]; 46 | for(int k=19;~k;k--)if(Fa[u][k]!=Fa[v][k]) 47 | u=Fa[u][k],v=Fa[v][k]; 48 | return ans-2*Dis[*Fa[u]]; 49 | } 50 | int main(){ 51 | scanf("%*d%d",&n); 52 | for(int i=1;i<=n;i++){ 53 | int a,c;scanf("%d%d%d",&a,&c,r+i); 54 | a^=now%(int)1e9; 55 | fa[i]=*Fa[i]=a;siz[i]=1;Dis[i]=Dis[a]+c;son[i]=i;sw[i]=c; 56 | if(!c){tr[i].insert({-r[i],i});puts("0");continue;} 57 | v[a].push_back({i,c});v[i].push_back({a,c});Dep[i]=Dep[a]+1; 58 | for(int k=1;k<20;k++)Fa[i][k]=Fa[Fa[i][k-1]][k-1]; 59 | for(int x=i;fa[x];x=fa[x]){ 60 | now+=tr[fa[x]].qry(r[i]-dis(fa[x],i))-t1[x].qry(r[i]-dis(fa[x],i)); 61 | siz[fa[x]]++; 62 | } 63 | for(int x=i;fa[x];) 64 | if(siz[x]>0.75*siz[fa[x]]){ 65 | for(int y=fa[fa[x]];y;y=fa[y])vis[y]=1; 66 | x=rebuild(fa[x]); 67 | for(int y=fa[x];y;y=fa[y])vis[y]=0; 68 | }else x=fa[x]; 69 | for(int x=i;x;x=fa[x]) 70 | tr[x].insert({dis(x,i)-r[i],i}),t1[x].insert({dis(fa[x],i)-r[i],i}); 71 | printf("%lld\n",now); 72 | } 73 | return 0; 74 | } 75 | -------------------------------------------------------------------------------- /examples/output_1.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | const char *prog= 8 | "f0VMRgIBAQA&'IAPgABA)MCNA,BA&%PhiA&(EA'OA'LAEA'HQAcA'YA)EA)QA.BA'EA,EA'QA,aAIA,BoAgA-gA&%wA)QA(CoAgA,KgCQA,qAJA-cA.BwA&%QA.BA)BA&,BA&%EA,EgXA-SBcA.EA.EA)FA*CA&%IEA.gQA,tRkA,C1GQA.QA.QA)QA*QA.BAQA-EBA,BADgA,EAOA.BA.BA)BgA(IBcA-gGxA,CAbEA-gFA-EAUA.EA.IA)GA)yF0A,DIbUA,MhtQA,EAIA-QAgA-gA.BA*QA(DEAgA,MQCQA,xAJA,BEA.EQA.BA.BQ5XRkBA)HhFA-eEVA,B4RUA,DwBA-PAEA-EA.FHldGQGA*,BA&%UuV0ZAQA(CAXA-IBsQA,gGxA,CA'wA,IADA.QA.vbGliNjQvbGQtbGludXgteDg2LTY0LnNvLjIABA)BQA)DA)R05VAEcwBACoQgow1c7g'pAGcD61falxBA)BA*BA)R05VA,DA*gA.RA)KQA)IA)HA)gIZCJoBJAFQtBUQAQ'EIhSkA)rA)LQA.uA)LwA(DA*xA)MwA&)NA)DYA)3A.DgA)5A)Lnco/kFBWZy6SFqjZ2W4SZknSaLpv/SIyYEK0nlJa7aWFRHSKUXVTOGZ0r'yQsLeCa1bcCe'wR6dY73Fv6ePKlcdZpwA('RA)EgA')CFBgA'EgA')DNBA(EgA')CaAQA'EgA')B7BgA'EgA'*GBQA'EgA')C2AwA'EgA')CoAgA'EgA'*NBA(EgA')BaBA(EgA'*mAQA'EgA')DwA)EgA')DpBA(EgA')DeAgA'EgA'*fBA(EgA')C9A)FgA')CZBgA'EgA')CMBgA'EgA')BEAQA'EgA')DTA)EgA')CqAQA'EgA'*7BA(EgA'+BQA'EgA')DmAQA'EgA'*oBgA'FgA'*2BQA'EgA')CoBgA'EgA')B5BQA'EgA')BhBQA'EgA')CgBgA'EgA'*6BgA'EgA')BGA)IgA')CzBA(EgA')D/AQA'EgA')BiBgA'EgA')BmAwA'EgA')CvBgA'EgA')BiA)IA'+OAQA'EgA')BxA)EgA'*dAwA'IgANAPAzQA,NgIA,CfBA(EgA(JAiQA&,CtBQA'IgANADA2QA,VgEA-xA)IgA(GAiQA&,CIBA(IQAVAKBsQA,EA.BCBA(EgA(MAgQA&,CQAwA'IQAVAMhsQA,WA.BzBA(EgA(FAiQA&,DJAgA'IQAVAKBtQA,KA&%FAwA'EgA(NAiQA&-iA)EgA(BAhQA&,D4AwA'IQAVALBsQA,GA.D0BQA'EgA(BAiQA&,CHBQA'IQAVAIhtQA,EA.DPAwA'IQAVADBtQA,WA.CEAgA'IQAVACBtQA,EA&%B'gA'EgA(EAhQA&.bGlicHRocmVhZC5zby4wAF9fZXJybm9fbG9jYXRpb24AcHRocmVhZF9jcmVhdGUAX19wdGhyZWFkX2tleV9jcmVhdGUAcHRocmVhZF9vbmNlAGxpYnN0ZGMrKy5zby42AF9fZ21vbl9zdGFydF9fAF9aTlN0MTFsb2dpY19lcnJvckMyRVJLTlN0N19fY3h4MTExMmJhc2ljX3N0cmluZ0ljU3QxMWNoYXJfdHJhaXRzSWNFU2FJY0VFRQBfWlN0MTVfX29uY2VfY2FsbGFibGUAX19jeGFfaW5pdF9wcmltYXJ5X2V4Y2VwdGlvbgBfWlN0MjBfX3Rocm93X2xlbmd0aF9lcnJvclBLYwBfWk5TdDEyZnV0dXJlX2Vycm9yRDF'dgBfWk5TdDNfVjIxNmdlbmVyaWNfY2F0ZWdvcnlFdgBfWk5TdDZ0aHJlYWQxNV9NX3N0YXJ0X3RocmVhZEVTdDEwdW5pcXVlX3B0cklOU182X1N0YXRlRVN0MTRkZWZhdWx0X2RlbGV0ZUlTMV9FRVBGdnZFAF9aU3Q5dGVybWluYXRldgBfWk5TdDI4X19hdG9taWNfZnV0ZXhfdW5zaWduZWRfYmFzZTE5X01fZnV0ZXhfbm90aWZ5X2FsbEVQagBfWlN0MTdjdXJyZW50X2V4Y2VwdGlvbnYAX1pOU3QyOF9fYXRvbWljX2Z1dGV4X3Vuc2lnbmVkX2Jhc2UxOV9NX2Z1dGV4X3dhaXRfdW50aWxFUGpqYk5TdDZjaHJvbm84ZHVyYXRpb25JbFN0NXJhdGlvSUxsMUVMbDF'RUVFTlMyX0lsUzNfSUxsMUVMbDEwMDAwMDAwMDBFRUVFAF9aVElOMTBfX2N4eGFiaXYxMTVfX2ZvcmNlZF91bndpbmRFAF9aU3QyNV9fdGhyb3dfYmFkX2Z1bmN0aW9uX2NhbGx2AF9aVFZTdDEyZnV0dXJlX2Vycm9yAF9aTlN0MTNfX2Z1dHVyZV9iYXNlMTJfUmVzdWx0X2Jhc2VDMkV2AF9aTlN0OGlvc19iYXNlNEluaXREMUV2AF9aTlN0N19fY3h4MTExMmJhc2ljX3N0cmluZ0ljU3QxMWNoYXJfdHJhaXRzSWNFU2FJY0VFMTBfTV9yZXBsYWNlRW1tUEtjbQBfWk5TdDE1X19leGNlcHRpb25fcHRyMTNleGNlcHRpb25fcHRyRDF'dgBfWlRWTjEwX19jeHh'Yml2MTE3X19jbGFzc190eXBlX2luZm9FAF9aU3QxN19fdGhyb3dfYmFkX2FsbG9jdgBfWlRWTjEwX19jeHh'Yml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAF9aVElTdDEyc3lzdGVtX2Vycm9yAF9fY3h'X2JlZ2luX2NhdGNoAF9aU3QyMF9fdGhyb3dfc3lzdGVtX2Vycm9yaQBfWmRsUHYAX1pOU3Q2dGhyZWFkNl9TdGF0ZUQyRXYAX19jeGFfYWxsb2NhdGVfZXhjZXB0aW9uAF9fZ3h4X3BlcnNvbmFsaXR5X3YwAF9aVElOU3Q2dGhyZWFkNl9TdGF0ZU'AX1pOU3Q2dGhyZWFkNGpvaW5FdgBfWk5TdDExbG9naWNfZXJyb3JDMkVS'1NfAF9aU3QyMF9fdGhyb3dfZnV0dXJlX2Vycm9yaQBfWlN0MTVmdXR1cmVfY2F0ZWdvcnl2AF9abndtAF9aTlN0MTVfX2V4Y2VwdGlvbl9wdHIxM2V4Y2VwdGlvbl9wdHI0c3dhcEVSUzBfAF9aTlN0MTVfX2V4Y2VwdGlvbl9wdHIxM2V4Y2VwdGlvbl9wdHJDMUVQdgBfWk5TdDhpb3NfYmFzZTRJbml0QzF'dgBfX2N4YV9yZXRocm93AF9aVElOU3QxM19fZnV0dXJlX2Jhc2UxMl9SZXN1bHRfYmFzZU'AX1pOU3Q3X19jeHgxMTEyYmFzaWNfc3RyaW5nSWNTdDExY2h'cl90cmFpdHNJY0VTYUljRU'5X01fbXV0YXRlRW1tUEtjbQBfX29uY2VfcHJveHkAX1pOU3QxM19fZnV0dXJlX2Jhc2UxMl9SZXN1bHRfYmFzZUQyRXYAX1pTdDExX19vbmNlX2NhbGwAX19jeGFfZW5kX2NhdGNoAGxpYm0uc28uNgBsaWJnY2Nfcy5zby4xAF9VbndpbmRfUmVzdW1lAGxpYmMuc28uNgBuYW5vc2xlZXA'cHJpbnRmAF9fY3h'X2F0ZXhpdABtZW1jcHkAbWVtbW92ZQBzdHJjbXA'X19saWJjX3N0YXJ0X21haW4AR0NDXzMuMABDWFhBQklfMS4zLjExAENYWEFCSV8xLjMuMgBHTElCQ1hYXzMuNC4xNQBHTElCQ1hYXzMuNC4yMQBDWFhBQklfMS4zAENYWEFCSV8xLjMuMwBHTElCQ1hYXzMuNC4xMQBHTElCQ1hYXzMuNABHTElCQ1hYXzMuNC4xNABHTElCQ1hYXzMuNC4yMgBHTElCQ18yLjE0AEdMSUJDXzIuMi41A*gADA'UABgADA'gABgAFA'kACQAKA'YACwALA'cABwANA'MABA'OA'oABgAGA'gABwAOA'MACQAGA'MACQACA'oACgAPA'gA'wA)UACgABA'cA'QACA'QABA'JA'kABQAGA'IABwAHA'sACQAMA'sA)BA'EAVAYA'BA*gA)UCZ5CwA'DwDB'gA-EACgBTA)EA)LA)DxF/0KA(OAMkGA(QA)ctGvCwA'DADXBgA'EA)GX4lwIA(sA5AYA'BA)Bx>JcCA(KAPMGA(QA)069rBQA'CQACBwA'EA)HPRrwsA(gADQcA'BA)Bh>JcCA(HABoHA(QA)dCmSCA(BgApBwA'EA)GT4lwIA(UANQcA'BA)By>JcCA(EAEQHA.QACAHEGA(QA)MA)JSRlgYA(0AUwcA'BA)B1GmkJA(DAF4HA.QABA'EA)QA.HUa'QkA(IAXgcA,DYb0A,BIA)QA&)Dgb0A,BIA)ZA&)Dob0A-YA)lA&)Dwb0A-YA)mA&)CgbEA-UA)tA&)CwbEA-UA)0A&)DIbEA-UA)vA&*gbUA-UA)4A&*wbUA-UA)3A&)CIbUA-UA)2A&)CgbUA-UA)xA&*YcEA-cA)BA&*gcEA-cA)CA&*ocEA-cA)DA&*wcEA-cA)EA&*4cEA-cA)FA&)BAcEA-cA)GA&)BIcEA-cA)HA&)BQcEA-cA)IA&)BYcEA-cA)JA&)BgcEA-cA)uA&)BocEA-cA)KA&)BwcEA-cA)LA&)B4cEA-cA)MA&)CAcEA-cA)NA&)CIcEA-cA)zA&)CQcEA-cA)OA&)CYcEA-cA)PA&)CgcEA-cA)5A&)CocEA-cA)RA&)CwcEA-cA)SA&)C4cEA-cA)TA&)DAcEA-cA)UA&)DIcEA-cA)VA&)DQcEA-cA)WA&)DYcEA-cA)XA&)DgcEA-cA)YA&)DocEA-cA)aA&)DwcEA-cA)bA&)D4cEA-cA)cA&+cUA-cA)dA&*IcUA-cA)1A&*QcUA-cA)eA&*YcUA-cA)fA&*gcUA-cA)gA&*ocUA-cA)wA&*wcUA-cA)sA&*4cUA-cA)hA&)BAcUA-cA)iA&)BIcUA-cA)qA&)BQcUA-cA)jA&)BYcUA-cA)kA&)BgcUA-cA)nA&)BocUA-cA)yA&)BwcUA-cA)oA'..%DzDx76SIPsCEiLBeFPA'BIhcB0Av/QSIPECM'A+P814k8A'P8l5E8A(8fQAD/JeJPA'BoA*Ong/*yXaTwA'aAEA(Dp0P/)8l0k8A'GgCA)6cD/*JcpPA'BoAwA(Omw/*yXCTwA'aAQA(DpoP/)8luk8A'GgFA)6ZD/*JbJPA'BoBgA(OmA/*yWqTwA'aAcA(DpcP/)8lok8A'GgIA)6WD/*JZpPA'BoCQA(OlQ/*yWSTwA'aAoA(DpQP/)8lik8A'GgLA)6TD/*JYJPA'BoDA)Okg/*yV6TwA'aA0A(DpEP/)8lck8A'GgOA)6QD/*JWpPA'BoDwA(Onw/v/(yViTwA'aBA)Dp4P7/(8lWk8A'GgRA)6dD>/)JVJPA'BoEgA(OnA/v/(yVKTwA'aBMA(DpsP7/(8lQk8A'GgUA)6aD>/)JTpPA'BoFQA(OmQ/v/(yUyTwA'aBYA(DpgP7/(8lKk8A'GgXA)6XD>/)JSJPA'BoGA)Olg/v/(yUaTwA'aBkA(DpUP7/(8lEk8A'GgaA)6UD>/)JQpPA'BoGwA(Okw/v/(yUCTwA'aBwA(DpIP7/(8l>k4A'GgdA)6RD>/)JfJOA'BoHgA(OkA/v/(yXqTgA'aB8A(Dp8P3/(8l4k4A'Gg'A)6eD9/)JdpOA'BoIQA(OnQ/f/(yXSTgA'aCIA(DpwP3/(8lyk4A'GgjA)6bD9/)JcJOA'BoJA)Omg/f/(yW6TgA'aCUA(DpkP3/(8lsk4A'GgmA)6YD9/)JapOA'BoJwA(Olw/f/(yWiTgA'aCgA(DpYP3/(8lmk4A'GgpA)6VD9/)JZJOA'BoKgA(OlA/f/(yWKTgA'aCsA(DpMP3/(MPHvoPrlwk/IFMJPxAgA(D65UJPzDZg8fhA,UL>JcUA'6OX>/'>/0CJA'L6JcUA'uoBxQABY6TD>/(zDx76Me1JidFeSIniSIPk8FBUScfAoDlA'EjHwTA5QABIx8cgJEA'/xWKTA(9JDzDx76w2YuDx>EA+CQuIhxQABIPYhxQAB0E7gA*SIXAdAm/iHFA'P/gZpD'ZmYuDx>EA,PH0A'vohxQABIge6IcUA'SInwSMHuP0jB>ANIAcZI0f50EbgA*SIXAdAe/iHFA'P/gw2ZmLg8fhA,Dx9A'PMPHvqAPZ1NA)dRNVSInl6Hr/)GBYtNA(BXcOQw2ZmLg8fhA,Dx9A'PMPHvr'imYuDx>EA+BVQVdBVkFVQVRTSIPsSMX4V8DF>ClEJB'Ix0QkIA*B'vAEA(BMjXQkMEyNfCRAQb1gIkA'6REA)PH0A'Qf/EQYP8Cw>ESAIA'L9QA)6Dn9/'9IicNIuAEA)BA)SIlDCEjHA0BAQABIx0MYA*MdDIA*DGQyQAx0MoA*EjHQzA+x0M4A*EjHQxAoQUA'vxA)Do5vz/'0iJxcX4V8DF>CkASInH6EP8/'9Ix0UAmERA'EiJa0BEiWNISMdEJDA+vxA)DosPz/'0iJ3UiDxRBIxwDIQUA'SIloCEiJRCRAuhAhQABMifdMif7oSfz/'0iLfCRASIX/dAZIiwf/UAhIg3swA'>FmAQA'EiLRCQwSIlDMEiJLCRIiVwkCE2F7XQX8P9DCEiL'CRIhe0PhQkA(DpjgIA'JD/QwiwAYZF'ITAD4VpAgA'TYXtdBu4/+APwUMIg/gBD4QWA)6UoA)PHwCLQwiNSP>JSwiD>AF1OUiLA0iJ3/9QE'2F7XQUuP/*wD8FD'IP4AXQT6RcA(CLQwyNSP>JSwyD>AF1CUiLA0iJ3/9QGEiLdCQYSDt0JCB0LUjHRg'A*xfgoBCRIx0QkCA*DF>BEGSMcEJA*BIg8YQSIl0JBjrDUiNfCQ'SIni6JMRA'BIi1wkCEiF2w>EJf7/'02F7Q>EHA)Lj/*8A/BQwiD>AEPhQn>/(pFgA)8fQACLQwiNSP>JSwiD>AEPhe79/'9IiwNIid/'UB'Nhe10Fbj/*8A/BQwyD>AEPhc39/(rEotD'I1I/4lLDIP4AQ>Fuf3/'0iLA0iJ3/9QGOmr/f/'TIt0JB'Ii2wkGEk57g>FEQA(On>A)Dx8ASYPGE'k57nRaSYseSIXbD4QOAQA'SIsDSInf/1AQi1MQgeL/(9/g/oBdNRIg8MQ8IELA)gIHKA)gEiJ30iJ3jHJRTHARTHJ6GD7/'>LE4Hi/)f4P6AXSjNAF0z>udSItsJB'Mi3QkGEw59Q>EhQA(EG/YCJA'OsLZpBIg8UQSTnudG1Ii10ISIXbdO5Nhf90Gbj/*8A/BQwiD>AEPhdb/)pDwA(JCLQwiNSP>JSwiD>AF1wkiLA0iJ3/9QE'2F/3QRuP/*wD8FD'IP4AXWl6w6LQwyNSP>JSwyD>AF1lUiLA0iJ3/9QGOuKTIt0JB'NhfZ0CEyJ9>jI>f/'McBIg8RIW0FcQV1BXkFfXcO/AQA(Ohd>P/'vwMA(DoU/j/'78DA)6En4/(p9QEA'EmJxkyLfCQITYX/dHO4YCJA'EiFwHQNuP/*wQ'/BRwjrC0GLRwiNSP9BiU8Ig/gBdUxJiwdMif/'UBC4YCJA'EiFwHQNuP/*wQ'/BRwzrC0GLRwyNSP9BiU8Mg/gBdRxJiwdMif/'UBjrEUmJxkiLXCQISIXbD4R4AQA'uGAiQABIhcB0DLj/*8A/BQwjrCYtDCI1I/4lLCIP4AQ>FUAEA'EiLA0iJ3/9QELhgIkA'SIXAdAy4/+APwUM'6wmLQwyNSP>JSwyD>AEPhR8BA'BIiwNIid/'UBjpEQEA'OkJAQA'SYnXSYnG6YEA(BJid'JicbrREmJ10mJxkiJ7>iH>P/'6zRJid'JicbrFkmJ10mJxkiLfCRASIX/dAZIiwf/UAhIi3tASIX/dAVIiwf/E'jHQ0A+SMdDEDhEQABIg3swAHV8SMdDEGhEQABIi3sYSIX/dAVIiwf/E'jHQxgA*SInf6Bz4/'9Bg/8BdXpMif'oHvf/'0iJw>hG9/(x0QkMAsA(BIiUQkOEiLexiLcxBIiwdIjVQkMP9QMITAdRhIg8MQSIt8JDiLVCQwSIsHSIne/1A4hMDoFvj/'>iB9v/'SInH6EkFA'BIicfoQ'UA'EmJxug5>P/'6wtIicfoLwUA'EmJxkiLXCQ'SItsJBhIOet1EUiF2w>FgA)EyJ9>h8>P/'QbxgIkA'TIt7CE2F/3RWTYXkdA24/+B'D8FHCOsLQYtHCI1I/0GJTwiD>AF1NEmLB0yJ/'9QE'2F5HQNuP/*wQ'/BRwzrC0GLRwyNSP9BiU8Mg/gBdQlJiwdMif/'UBhIg8MQSDnd'ZhIi1wkE'iF23SASInf6Pz2/'9Mif'o9Pf/'w8fQAD'ZmZmZmZmLg8fhA,6dv2/'9mZi4PH4QA+EiDx'DramYuDx>EA+BIhf90Bem29v/'w'8fRA(U0iJ>7hoRUA'SDnGdC9Ii34IuEtFQABIOcd0IYA/KnUHMdtIidhbw75LRUA'6L72/'>FwHQHMdtIidhbw0iDwxBIidhbw2YuDx>EA+B'VlNQSIn7SMcHKEFA'EiDfyA'dAlIjXsg6DL3/'9Ii3swSIX/dAVIiwf/E'jHQzA+SMcDOERA'EiDeyA'dSVIxwNoREA'SIt7CEiF/3QFSIsH/xBIx0MIA*EiDxAhbQV7D6LT0/'9IicfofAMA'EiJx>h0AwA'SYnGSI17MOh4AwA'SInf6DAEA'BMif'oWAMA(8fhA,U0iJ>'hX/)SInfW>mu9f/'ZmZmZmYuDx>EA+BTSIn76Lf0/'9Iid9b6Y71/'9mZmZmZi4PH4QA+EFXQVZBVFNIg>x4SItfCEyNYzBIjUM4TIlkJB'IiUQkGEjHRCQoAC5A'EjHRCQgAC9A'MZEJAcASMdEJEg'MkA'SMdEJFA+SIlcJEBIjUQkE'iJRCQ4SI1EJAdIiUQkMEiNRCRISIlEJFhIjUQkQEiJRCRgSI1EJDhIiUQkaEiNRCQwSIlEJHBIiwUmQwA'SI1MJFhkSIkISIsFHkMA'GRIxwBwMkA'uGAiQABIhcB0U0iNexi>ECJA'Ohe9f/'hcB1RoB8JAcAdEa4AQA(IdDEIXAeQlIjXsQ6I70/'9Ii0QkIEiFwHQPSI18JB'Iif6'AwA(P/QSIPEeFtBXEFeQV/DuP/)>Jx>j98/(vwIA(DoE/P/'0iJx>jrAQA'SYnXSYnGSItEJCBIhcB0D0iNfCQ'SIn>ugMA(D/0EGD/wJ1fUyJ9>g>8/(SYsEJEiFwHQySMdDMA*BIiUQkCEiNdCQISInf6IsDA'BIi3wkCEiF/3QFSIsH/xBIx0QkCA*DoPvT/'0iJx>h2AQA'SYnGSIt8JAhIhf90BUiLB/8QSMdEJAgA*6wtIicfoUQEA'EmJxuhJ9P/'TIn36LH0/'9IicfoOQEA'EiJx>gxAQA'kEFXQVZBVFNIg>woSYn3SYn>TItmCMX4KAUDEgA'xfgpRCQ'SI1cJBAPH4QA+EiJ30iJ3ug18v/'g/j/dQro6/H/'4M4BHTmQYs0JA>v9r/oREA'McDo4/H/'0mLB0iLCEjHA+BJiQ5MifBIg8QoW0FcQV5BX8NIidNIicfoKfL/'4P7AnRKSYnkTIn'6Cnz/'9JiwdIizBIg8YISIsEJEiJRCQISMcEJA*BIjVwkCEiJ3>jB8f/'SInf6Onz/'9Miefo4fP/'>hc8/(64foFfP/'0iJw>hN8/(SInf6LXz/'9IicfoPQA(GZmZmYuDx>EA+CD>gJ0E4P6AXQZhdJ1EkjHBxBDQA'xwMPF>BAGxfgRBzHAw0iJNzHAw'8fgA*BQ6Hrx/(oJfH/'w8fRA(U0iJ>0iLP0iF/3QFSIsH/xBIxwMA*W8NIicfozv/(2YuDx>EA,PH0A'SIPsKEjHRCQIkCJA'EjHRCQ'A*EiNRyBIiQ'kSI1EJAhIiUQkGEiJ4EiJRCQgSIsFMUA(EiNTCQYZEiJCEiLBSlA(BkSMcAkDdA'LhgIkA'SIXAdBdIg8covhAiQADoafL/'4XAdQpIg8Qow7j/*icfoRPH/'w8fQA'xwMNmLg8fhA,Dx8AU0jHBzhEQABIg38gAHUiSIn7SMcHaERA'EiLfwhIhf90BUiLB/8QSMdDCA*Bbw>gq8P/'SInH6PL>/'9mkFNIxwc4REA'SIN/IAB1IUiJ>0jHB2hEQABIi38ISIX/dAVIiwf/E'iJ31vpMPH/'>jr7/(SInH6LP>/'8PHwBTSIn7SMcHaERA'EiLfwhIhf90BUiLB/8QSMdDCA*Bbw0iJx>iF/v/'Dx9EA'BTSIn7SMcHaERA'EiLfwhIhf90BUiLB/8QSInfW>nO8P/'SInH6Fb>/'9mDx9EA'D'Zi4PH4QA,8fRA(SIX/dAZIiwf/YBD(x9A'FNIifvoN/D/'0iJ31vpjvD/'2YuDx>EA,PH0A'QVdBVkFVQVRTSIPsMEiDPgAPhNUA(BJifRJif7ovu/(0yNfCQ'TIn/vgQA(BIicLoaQEA'L8gA)6G/v/'9IicNIi0QkE'iLcPi6sDJA'EiJ3>gG8P/'SInfTIn>6Ovw/'9IxwOwbUA'xfgQRCQgxfgRQxBJieVMie9Iid7oK/D/'0mLNCRIg8YISIsEJEiJRCQISMcEJA*BIjVwkCEiJ3>i17v/'SInf6N3w/'9Mie/o1fD/'0yJ/>jd8P/'SYtGCEmLDCRJiU4ISYkEJLgBA)QYdGEIXAeQxJg8YQTIn36ITv/'9Ig8QwW0FcQV1BXkFfw2YPH0QA'EFWU1BIg34QAHQySYnWSIn7SIn'/1Y'QcYGAUiLewhIiwQkSIlDCEiJPCRIhf90BUiLB/8QSIPECFtBXsPoPu7/'0iJx>jG/P/'Zg8fRA(SIsFYT0A'GRIiwBIizBIi3gISItIE'iLUBhIiz9IiwZIA34IqAF0CEiLN0iLRD'/SIsxSIsS/>APH4QA+EiLB/8gZi4PH4QA+JBVQVdBVlNIg>xISYnWQYn3SIn7SIsCSI1sJChIie9IidZEifr/UC'57ERA'EG4EwA(EiJ7zH2MdLo8gA(EiNbCQYSIlsJAhIixBIicFIg8EQSDnKdB'IiVQkCEiLUB'IiVQkGOsJxfgQAsX4EU'ASItQCEiJVCQ'SIkISMdACA*DGQBA'SI10JAhIid/oi>/(0iLfCQISDnvdAXoPO7/'0iLfCQoSI1EJDhIOcd0Bego7v/'SMcDsG1A'ESJexBMiXMYSIPESFtBXkFfXcNIicNIi3wkCEg573UXSIt8JChIjUQkOEg5x3UwSInf6Oru/(o5e3/'0iLfCQoSI1EJDhIOcd05OsS'InDSIt8JChIjUQkOEg5x3TQ6L3t/'9Iid/ote7/'w8fRA(VUFXQVZBVUFU'1BJic9IidNIi0cISInRSCnBSLr/.f0gBykw5wg>C>wEA'E2JxEmJ/U2Jxk'p3k'BxkiLD0iNVxBIOdF0OUmLVRBJOdZ2OkyJ70iJ2kyJ>U2J4OjaAQA'TYl1CEmLRQBCxgQwAEyJ6EiDxAhbQVxBXUFeQV9dw7oPA)STnWd8ZMjQ'xSInFSCn1SCndTDn5dyBIAcFMOflyGEmNRCT/SDnYc2VJg/wBdUlBigdBiADrV0k53HQaSIXtdBVLjTwgTAHDSIP9AQ>FjgA(IoDiAdNheR0gUmD/AEPhKA)BMicdMif5MieLoY>z/'>lk/)TInHTIn>TIniTIkEJOgc7f/'TIsEJEk53HQXSIXtdBJLjTwgSY0'GEiD/QF1ao'GiAdJOdwPhin/(9LjTQnSY0sGEg57nY/TCn9dmQPhKMA(BIg/0BD4WFA)QYoHQYgA6Y4A(BIid5IiepMicPouOz/'0mJ2E2F5A>FYf/(>nd/v/'SYP8AXU6QYoHQYgA6cz>/'9IiepMicXoi>z/'0mJ6Ek53A>Gtf7/'>uKSPfbSAHeSYP8AXUdigZBiADpnf7/'0yJx0yJ/kyJ4uhZ7P/'6Yr>/'9MicfpEf/(0yJx0yJ/kiJ6kyJw>g7'P/'SYnYTIniSCnqD4Ri/v/'TAHFTQHESIP6AXUMQYoEJIhFAOlK/v/'SInvTInm6Dnr/(pOv7/'78ARUA'6Mrq/'9mLg8fhA,VUFXQVZBVUFU'0iD7BhMicVIiUwkCEiJ80mJ/kyLfwhNicVIiRQkS'nVTQH9SI1PE'g5D3RnSYtGE'2F7XhoSTnFdhlIAcBJOcVzEUm9/.39MOehMD0LoSIlMJB'Mie9I/8cPiOMA(BJKd/oCuv/'0mJxEiF23QPSYs2SIP7AXUqigZBiAQkTCs8JEiLdCQISIX2dS/rQLgPA)TYXteZi/GUVA'OgP6v/'TIn'SIna6GTq/'9MKzwkSIt0JAhIhfZ0E0iF7XQOSY08HEiD/QF1Q4oGiAdNhf90R0yJ50gB30gB70mL'kgB60gDHCRJg/8BdQ2KA4gHSDtsJB'1LeszSIneTIn6'A3q/'9IO2wkEHUZ6x9Iiero/On/'02F/3W5SYsuSDtsJB'0CEiJ7>g16v/'TYkmTYluE'iDxBhbQVxBXUFeQV9dw>gK6f/'Zi4PH4QA+EiLBUE4A'BkSIsASIsISItACEiLOEiLAUgDeQioAXQISIsPSItECP/'4GYPH0QA'FVBV0FWQV'BVFNQSInzSIs3TIt3CEyJ8Egp8Ei58P/,39IOcgPhC8BA'BJidVIiTwkSInBSMH5BEiFwLgBA)SA9FwUyNPAhMifpIweo7SLr/.B0wPRfpIAchMD0L6SIndSCn1SMH9BE2F/3QXTIn/SMHnBEmJ9Ohq6f/'TInmSYnE6wNFMeRIweUExMF4E'UAScdFCA*DEwXgRBCxJx0UA+EyJ5Ug53nQyTInlSInwkEiLCEiLUAhIx0AIA*EiJTQBIiVUISMcA+EiDxRBIg8AQSDnYd'VIg8UQSTneD4QzA)Dx>EA+BIiwNIi0sISMdDCA*BIiU'ASIlNCEjHAwA)BIg8UQSIPDE'w583XVSIX2dAhIif'oqOj/'0iLBCRMiSBIiWgIScHnBE0B50yJeB'Ig8QIW0FcQV1BXkFfXcO/MUVA'OjJ5/(Zg8fhA,8w8e>kFXTI09QzMA'EFWSYnWQV'JifVBVEGJ/FVIjS1EMwA'U0wp/UiD7Ajon>b/'0jB/QN0HzHbDx>A+EyJ8kyJ7kSJ50H/FN9Ig8MBSDnd'epIg8QIW1'BXEFdQV5BX8NmZi4PH4QA+PMPHvrDA)8w8e>kiD7AhIg8QIw'A'&)-EA'gA*%4fUFA&,EFA,CwKkA,MAqQA,0CpA,DgKkA,PAqQA,U3QyM19TcF9jb3VudGVkX3B0cl9pbnBsYWNlSU5TdDEzX19mdXR1cmVfYmFzZTE3X0FzeW5jX3N0YXRlX2ltcGxJTlN0NnRocmVhZDhfSW52b2tlcklTdDV0dXBsZUlKWjRtYWluRTMkXzBFRUVFdkVFU2FJUzhfRUxO'V9fZ251X2N4eDEyX0xvY2tfcG9saWN5RTJFRQBAbUA,GhAQA,mENA&-KB'QA,QCtA,DgK0A,HAvQA,8C9A,BOU3QxM19fZnV0dXJlX2Jhc2UxN19Bc3luY19zdGF0ZV9pbXBsSU5TdDZ0aHJlYWQ4X0ludm9rZXJ'U3Q1dHVwbGVJSlo0bWFpbkUzJF8wRUVFRXZFRQA'QG1A,BIQUA,B'EQA&,BoQkA,MAgQA-CxA-gLEA,E5TdDZ0aHJlYWQxMV9TdGF0ZV9pbXBsSU5TXzhfSW52b2tlcklTdDV0dXBsZUlKWk5TdDEzX19mdXR1cmVfYmFzZTE3X0FzeW5jX3N0YXRlX2ltcGxJTlMxX0lTMl9JSlo0bWFpbkUzJF8wRUVFRXZFQzF'T1M3X0V'bHZFX0VFRUVFRQA)BAbUA,OB'QA,oGxA,BOU3QxM19fZnV0dXJlX2Jhc2UxMl9UYXNrX3NldHRlcklTdDEwdW5pcXVlX3B0cklOU183X1Jlc3VsdEl2RUVOU18xMl9SZXN1bHRfYmFzZThfRGVsZXRlckVFTlN0NnRocmVhZDhfSW52b2tlcklTdDV0dXBsZUlKWjRtYWluRTMkXzBFRUVFdkVFA+DYbEA,IBCQA,U3QxNl9TcF9jb3VudGVkX2Jhc2VJTE45X19nbnVfY3h4MTJfTG9ja19wb2xpY3lFMkVFAFN0MTFfTXV0ZXhfYmFzZUlMTjlfX2dudV9jeHgxMl9Mb2NrX3BvbGljeU'yRU'A,DYbEA,FRDQA,QG1A-gQ0A,IhDQA,TlN0MTNfX2Z1dHVyZV9iYXNlMjFfQXN5bmNfc3RhdGVfY29tbW9uVjJFAE5TdDEzX19mdXR1cmVfYmFzZTEzX1N0YXRlX2Jhc2VWMkUA(DYbEA,NtDQA,QG1A,CwQ0A-BEQA&-QREA.wQA,QDBA,BwL0A,PAvQA&.REA,IAwQA,sDBA,DgMEA,PAvQA&,DQREA,PAwQA,QCFA.MUA,E5TdDEzX19mdXR1cmVfYmFzZTdfUmVzdWx0SXZFRQA'QG1A,CwREA,IhtQA,JWQKAHN0ZDo6ZnV0dXJlX2Vycm9yOiA'YmFzaWNfc3RyaW5nOjpfTV9yZXBsYWNlAGJhc2ljX3N0cmluZzo6X01fY3JlYXRlAHZlY3Rvcjo6X01fcmVhbGxvY19pbnNlcnQAU3QxOV9TcF9tYWtlX3NoYXJlZF90YWcA(%RsDOzwBA(mA)qNr/'4ABA'B43f/'qAEA'Jjd/'9YBA(uN3/'1gBA'Do3f/'bAEA'Kje/'>QBA(O'X/'8ABA'BI5f/'1AEA'Fjl/(oAQA'aOX/(wBA'B45f/'EAIA'Mjl/'8EBQA'aOb/'zgCA'CI5v/'yAIA'Kjm/'>0BQA'iOj/'ygGA'CI6f/'OAMA'Mjp/(kBA(>On/'1QCA'B46v/'cAIA'Ijq/'80BQA'yOr/'1QFA(I6/(dAUA'Djr/'>UBQA'aOv/'4QCA'B46/(mAIA'Ijr/'>sAgA'qOv/'>QCA'Co7P/'>AUA'Pjs/'8kAwA'O'3/'0wDA'BI7f/'aAYA'Hju/'9gAwA'uPD/'6wDA(Y8v/'>AMA'Ejy/'8MBA(uP'/'6gGA(o9P/'8AYA-UA&%F6UgABeBABGw'HCJABA(QA)HA)Fjc/'8vA*EQHEBA*wA)dNz/'wUA.JA)EQA)g2f/'0AIA)OE'YOGEoPC3cIgA'/GjsqMyQiA*BQA(BsA)yNv/'xcA&)BA)CEA)cOP/'wEA.EA)JgA(Bs4/(BQA.QA)rA)Gj'/'8GA.BA)DA*ZOP/'wsA.JA)NQA(Bg4/(RgA)B'DhCDAmYOCE'OEFQOCE'OE'gOCA)BgA(D8A)KOT/'xIA*Q'4QgwJMDg'A)YA)GAEA'Jzn/'98A*EQOMAJrDghBDjA'EA)DQBA)6P/'AwA.QA)SAEA'Nzo/'8BA.BA)BcAQA'2Oj/'w'A.GA)HABA'DU6P/'EgA)B'DhCDAkwOCA)BgA(CMAQA'uOP/'xIA*Q'4QgwJMDg'A)8A)qAEA'Lzo/(6A*EIOE'IOGEIOIEIOKE'OMEQOYIMGjAWNBI4DjwIC4w4wQ'4oQg4gQg4YQg4Q'g4IEA)OgBA'DM6f/'OA&%QA)/AEA'Ejm/'8pA.BA*QAgA'5On/'wUA.SA)CQCA(Q6/(NgIA(B'DhBCDh'CDiBCDihCDjB'DjhBDkCDB4wGjQWOBI8DhgICbw4'Q'4wQg4oQg4gQg4YQg4Q(4IQ'5A'EgA(BwAgA'BO3/'1YBA)Q'4Q'g4YQg4gQg4oQg4wQ'4'RA5QgweMBo0FjgSPA4YCAzgBDjhBDjBCDihCDiBCDh'CDhB'DghBDlAQA)vAIA'Bju/'8qA.EgA(DQAgA'NO7/'2cBA)Q'4Q'g4YQg4gQg4oQg4wQ'4'Q'5AgweMBo0FjgSPA4YCA0cBDjhBDjBCDihCDiBCDh'CDhB'DghBDkAUA)HAMA'DjZ/'8gA*E'OEFoOCA'cA&%F6UExSA'F4EAcDUCJA(MbDAcIkAEA'FA*kA)ENr/'4wGA(EgExA'E'OE'IOGEIOIEIOKEIOME'O'EQOgAGDB4wGjQWOBI8DhgIDsAMO'E'OMEIOKEIOIEIOGEIOE(OCE'OgAEA'BwA(B4A)3OT/'yIA)EGE1A'E'OEIMCWA4IQ'4QLA)JgA(C84P/'mA*QoTUA'Qg4Q(4YQ'4g'wO'AgJfDh'BDhBCDghBDiA'HA)MgA(BM5f/'PgA)RETUA'Q'4QgwJvDghBDhAcA)6A)Gzl/'89A)BFhNQAB'DhCDAmoOCEUOEBwA)IAQA'jOX/'ysA)EbE1A'E'OEIMCYQ4IQ'4QHA)CgBA'Cc5f/'KgA)R8TUA'Q'4QgwJcDghFDhBA*SAEA'Ozg/(fAQA'BIxNQABCDhBCDh'CDiB'DihEDqABgwWMBI4DjwIC9A4oQ'4gQg4YQg4Q'g4IQ'6gAQA(CwA(CMAQA'qOb/'0oA)E4E1A'EIOE(OGE'OI'MDjgJ1Dh'BDhBCDghBDiA(DwA(C8AQA'WOL/(MA)E>E1A'EIOE'IOGEIOIE'OKEQOUIMFjASOA48CAmkOKE'OIEIOGEIOE'IOCE'OUA'8A)/AEA'Njm/'8rAQA'BCROQAB'DhBCDh'CDiB'DihEDnCDBY4EjwOGAgLBDihBDiBCDh'CDhB'DghBDnA'RA)GwFA(I7f/'ZQA)BGDhCPAk'OGI4DRQ4gjQRFDi'MBUQOMIYGSA4'gwdHDkBuDjhBDjB'DihCDiBCDh'CDhBCDg'AEA)LQFA(w7f/'BQA&)/wOUAQGBAU0K2AkDoAEK4wkDtQEI6wkD1gEK>wkD9wEQgwoDhwL5AQA'gAQN2wgAjQS7AQA'yAUG0wkA7QUT4QsAgAbJAQA'yQcK7AcA0wcK5wcA3QcK7AcA5we>AgA'pQoCxwsF0goCvwsF1AphA'C1CwXPCwC6CxgA'NILBdkLBdcLtQEA+X0CA.LBsQAD/Aw0B'A8CGgEBA-/wMZARAZBXwBKgJ0AVUCbAFXQ'A(QA,P8DEQEIJQI2AScXA(BA-/wMRAQglAjUBJxYA(EA,D/Aw0B(cCIwEBA-/wMNAQ'XAiIBAQA,P8DUQFAuAEqpQID7AEPnQIFjAIRpQIDtQIP1wMFxAIkA'DoAg2aAwC'AwKSAwWNAwW/AwCqAwK3AwXCAwXPAwXHAxgA+n0BA(gbUA,P8DFQEMADMA'DMCQgE1FQA(QA,P8DKQEaMAt8AzubAQA'1gEF2wEA3gEF6wEB4wEQA(BA'J9ACBtQA,/'8BFQAnA(nF4wCAIgBDdIBAJUBlgEA)-,%BAkQA,8CJA-QI0A,OAjQA)%'BA&%EA&%QA-BTA&%EA.SgYA-BA.FQGA.QA-BxBgA-wA&%CBA-NA.Kg5QA,GQA-CAbEA,BsA.GA&%aA.JhsQA,HA&%IA.PX>/28A*CANA-FA.CAJQA,BgA-CwA0A-oA.agcA-LA.BgA.FQA'%MA&%HBA-CA.CAEA-FA&%HA.BcA.KBNA-HA.CASQA,CA&%IAQA-kA.GA.D>/'9vA,RQA,/)bwA*EA.PD/'28A*ihBA&-.yG1A'.NiBA,BGIEA,FYgQA,ZiBA,B2IEA,IYgQA,liBA,CmIEA,LYgQA,xiBA,DWIEA,OYgQA,9iBA-GIUA,BYhQA,JiFA-2IUA,EYhQA,ViFA,BmIUA,HYhQA,hiFA,CWIUA,KYhQA,tiFA,DGIUA,NYhQA,5iFA,D2IUA-YiQA,FiJA-mIkA,DYiQA,RiJA,BWIkA,GYiQA,diJA,CGIkA,JYiQA,piJA,C2IkA,MYiQA,1iJA,DmIkA'-BHQ0M6IChVYnVudHUgMTAuMi4wLTV1YnVudHUxfjIwLjA0KSAxMC4yLjA'VWJ1bnR1IGNsYW5nIHZlcnNpb24gMTEuMC4wLTJ>dWJ1bnR1MjAuMDQuMQA'LnNoc3RydGFiAC5pbnRlcnA'Lm5vdGUuZ251LmJ1aWxkLWlkAC5ub3RlLkFCS'10YWcALmdudS5oYXNoAC5keW5zeW0ALmR5bnN0cgAuZ251LnZlcnNpb24ALmdudS52ZXJzaW9uX3IALnJlbGEuZHluAC5yZWxhLnBsdA'uaW5pdA'udGV4dA'uZmluaQAucm9kYXRhAC5laF9mcmFtZV9oZHIALmVoX2ZyYW1lAC5nY2NfZXhjZXB0X3RhYmxlAC5pbml0X2FycmF5AC5maW5pX2FycmF5AC5kYXRhLnJlbC5ybwAuZHluYW1pYwAuZ290AC5nb3QucGx0AC5kYXRhAC5ic3MALmNvbW1lbnQA.+LA*QA)IA.qAJA,CoAgA,BwA'%BA'%EwA)cA)CA.MQCQA,xAIA-kA'%BA'%CYA)HA*gA-DoAkA,OgCA-IA'&QA'%0A)9v/'bwIA.CANA-IAwA,KgA.BQA.IA'%PgA)sA)CA.LADQA,sAMA,BwBQA-YA)BA)CA&%YA.EYA)DA*gA.gCUA,CAJA-agcA&.EA&.BOA)/)bwIA.ihBA,CKEA-HQA.BQA.CA&%IA.WwA(P7/'28CA&&RQA-BEA-gAQA-YA)EA)CA'%GoA)EA*gA.gEkA,CASA-CAEA-FA&%gA.GA.B0A)BA)EIA.KBNA-oEwA,CAEA-BQA(BgA)IA.BgA.fgA)EA)GA&&gQA-CA.bA'%BA'%HkA)BA)BgA.gIEA,CAgA-0AIA&-BA&%EA.CEA*QA)YA.8CJA,DwIgA,LUWA&.QA'%igA)EA)GA.Kg5QA,qDkA-NA'%BA'%JA*BA*gA&%QEA-BA.eAUA&-BA'%CYA*QA)IA.eEVA,B4RQA,DwBA&.EA'%pgA)EA)CA.LhGQA,uEYA,DIBQA&-CA'%LA*BA*gA-CATEA,IBMA-wAEA&.QA&.DCA)DgA)MA.gGxA,CAXA-BgA'%IA&%gA.zgA)8A)DA.JhsQA,mFwA-IA'%CA&%IA.NoA)BA*wA-CgbEA,KBcA-KAEA&-CA'%DnA)BgA)MA.yG1A,DIXQA,BACA-BgA.IA.BA&%8A*EA)DA.NhvQA,2F8A-gA'%CA&%IA.PUA)BA*wA&%cEA-BgA-eAEA&.gA.CA.D>A*QA)MA.eHFA,B4YQA,BA'&IA'%BAEA(gA)DA.IhxQA,iGEA-IA'&QA'%kBA(BA)MA'%Ih'A-VwA'%EA&%QA.BA*wA')DfYQA,BIBA&.BA'%" 9 | ;char dtb[128],tmp[1<<20],buf[1<<20],cmd[128]; 10 | void init_tb(){ 11 | int p=0; 12 | for(int i='A';i<='Z';i++)dtb[i]=p++; 13 | for(int i='a';i<='z';i++)dtb[i]=p++; 14 | for(int i='0';i<='9';i++)dtb[i]=p++; 15 | dtb[(int)'>']=p++;dtb[(int)'/']=p++; 16 | dtb[(int)'=']=0; 17 | } 18 | int from_base64(const char *c,char *o,int l){ 19 | assert((l&3)==0);int p=0,r=l/4*3; 20 | for(int i=0;i>16;o[p++]=s>>8&255;o[p++]=s&255; 23 | if(c[i+2]=='=')--r; 24 | if(c[i+3]=='=')--r; 25 | } 26 | o[p++]=0;return r; 27 | } 28 | int from_rle(const char *c,char *o,int l){ 29 | int p=0; 30 | for(int i=0;i 2 | #include 3 | #include 4 | 5 | using namespace std; 6 | 7 | const char *prog= 8 | "f0VMRgIBAQMA&&MAPgABA)gDoA,BA&%HCBA&(EA'OA'NAEA'HwAeA'YA)EA)QA.BA&%EA&%2AIA,DYAgA-gA&%wA)QA)YAwA,BgDA-GAMA-cA.BwA&%QA.BA)BA(,gQA-CBA&%EA.EA)FA*CA&%IA&%gA-xTIA,DFMgA.QA.QA)QA*YA.BgA.GA-DMDQA,MwNA.BA.BA)BgA(Fh7A-WIsA,BYiwA,MAEA-MNJ6AgA+EA.IA)GA)SH0A,BIjQA,EiNA-EAIA-QAgA-gA.BA*QA)4AwA,DgDA-OAMA-gA.CA&%CA&%EA)BA)FgDA-WAMA,BYAwA,EQA.RA&%EA.FPldGQEA)OAMA-4AwA,DgDA-IA&%gA&%gA.UOV0ZAQA)YZwA,BhnA-G'cA-MAQA-wBA-BA.BR5XRkBgA*,QA.FLldGQEA)WHsA,BYiwA,FiLA-qAQA,CoBA.EA.L2xpYjY0L2xkLWxpbnV4LXg4Ni02NC5zby4yA,EA)EA*UA(BHTlUA'gA'wAQA)DA&%QA)UA*wA(EdOVQCVvY1kaW2bv26Q7VClbq0m41>udAQA)QA*QA(EdOVQA,wA)IA&*IA)WA*QA)YA+IEA+BYA.0WXObQA(+BmAQA'EgA')B/A)EgA')C9A)EQA')ClAQA'EgA')CYAQA'EgA'*hAQA'EgA')CdA)EgA')CHAQA'EgA')BzAQA'EgA')DjA)EQA'*nAQA'EgA')C'AQA'EgA')C7AQA'EgA'*MAQA'EgA')BVA)EQA'*fA)IA'*BNAQA'EgA')D'AQA'EgA'*QA)IA'+7A)IA'*ClA)EgA')CsAQA'IgA'+bGlic3RkYysrLnNvLjYAX19nbW9uX3N0YXJ0X18AX0lUTV9kZXJlZ2lzdGVyVE1DbG9uZVRhYmxlAF9JVE1fcmVnaXN0ZXJUTUNsb25lVGFibGUAX1pUVk4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAX1pTdDIwX190aHJvd19sZW5ndGhfZXJyb3JQS2MAX1pkbFB2bQBfWk5TdDhpb3NfYmFzZTRJbml0RDF'dgBfWlRWTjEwX19jeHh'Yml2MTE3X19jbGFzc190eXBlX2luZm9FAF9aVFZOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UAX19neHhfcGVyc29uYWxpdHlfdjA'X1pud20AX1pOU3Q4aW9zX2Jhc2U0SW5pdEMxRXYAbGliZ2NjX3Muc28uMQBfVW53aW5kX1Jlc3VtZQBsaWJjLnNvLjYAX19wcmludGZfY2hrAF9faXNvYzk5X3NjYW5mAHB1dHMAX19zdGFja19jaGtfZmFpbABfX2N4YV9hdGV4aXQAbWVtY3B5AF9fY3h'X2ZpbmFsaXplAG1lbW1vdmUAX19saWJjX3N0YXJ0X21haW4AR0NDXzMuMABDWFhBQklfMS4zLjkAQ1hYQUJ'XzEuMwBHTElCQ1hYXzMuNABHTElCQ18yLjcAR0xJQkNfMi40AEdMSUJDXzIuMTQAR0xJQkNfMi4yLjUAR0xJQkNfMi4zLjQA)CA'QABQAGA'MABA'HA'gACQAFA'QA'wADA'UABQA)oA'wA+BA'DA*QABAD8BA(QA)IA)FAmeQsA(oA1QEA-BA'MA'QA(BA)BA*edGvCwA'BwDdAQA'EA)NOvawUA(UA6gEA'BA)B0KZI'A(EAPUBA.QAFAFwBA(QA.BdpaQ0A(kA'QIA'BA*UaWkNA(IA'sCA(QA)lJGWBgA'BgAVAgA'EA)HUa'QkA(MAIAIA'BA)B0GWkJA(CACwCA-WIsA-IA.GA7A-YIsA-IA.EA4A-aIsA-IA.GA6A-cIsA-IA.CA7A-gIsA-IA.KCMA-iIsA-IA.PB'A-kIsA-IA.GBRA-mIsA-IA.JBRA-oIsA-IA&%BCA-qIsA-IA.B'CA-sIsA-IA.CBCA-uIsA-IA.DBCA-wIsA-IA.EBCA-0IsA-IA.DCNA-2IsA-IA.PB'A-4IsA-IA.NBRA-6IsA-IA&%BSA-8IsA-IA&%BCA->IsA-IA.B'CA.IwA-IA.CBCA-CIwA-IA.DBCA-EIwA-IA.EBCA-I'wA-IA.EBgA-MIwA-IA.KBgA-QIwA-IA.NBgA-SIwA-IA.CiMA-WIwA-IA&%BhA-YIwA-IA.BiMA-cIwA-IA.GBhA-gIwA-IA.EBiA-kIwA-IA.GiMA-qIwA-IA.EBjA-uIwA-IA.DiMA-yIwA-IA.FCMA-2IwA-IA.HiMA-8IwA-IA&%BkA->IwA-IA.KCMA-CI0A-IA.MBkA-EI0A-IA.OiMA-I'0A-IA.GBmA-KI0A-IA&%CNA-OI0A-IA.OBmA-QI0A-IA.BiNA-CJA.IA&%iQA-GIwA-BA*wA(BA&%KIwA-BA*wA(BA&%aIwA-BA*wA(BA&%OIwA-BA)CgA(BA&%UIwA-BA)CgA(BA&%6IwA-BA)CgA(BA&&I0A-BA)CgA(BA&%GI0A-BA)CgA(BA&%MI0A-BA)CgA(BA&%eIwA-BA)DwA(BA&%oIwA-BA)DwA(BA&%0I8A-GA)FgA&)2I8A-GA)EA&*4I8A-GA)EgA&)6I8A-GA)EwA&)8I8A-GA)FA&*>I8A-GA)FQA&)EJA.BA)DgA&)cI8A-HA*QA&)eI8A-HA*gA&)gI8A-HA)BA&*iI8A-HA)BQA&)kI8A-HA)BgA&)mI8A-HA)BwA&)oI8A-HA)CA&*qI8A-HA)CQA&)sI8A-HA)CwA&)uI8A-HA)DA&*wI8A-HA)DQA&)yI8A-HA)EQA*)+)DzDx76SIPsCEiLBdlvA'BIhcB0Av/QSIPECM'A+P81Om8A'PL/JTtvA(PHwDzDx76aA*Dy6eH/(>Q8w8e>mgBA)8unR/)kPMPHvpoAgA(PLpwf/(5DzDx76aAMA(Dy6bH/(>Q8w8e>mgEA)8umh/)kPMPHvpoBQA(PLpkf/(5DzDx76aAYA(Dy6YH/(>Q8w8e>mgHA)8ulx/)kPMPHvpoCA)PLpYf/(5DzDx76aAkA(Dy6VH/(>Q8w8e>mgKA)8ulB/)kPMPHvpoCwA(PLpMf/(5DzDx768v8l1W4A(8fRA(8w8e>vL/JWVuA(PH0QA'PMPHvry/yVdbgA'Dx9EA'DzDx768v8lVW4A(8fRA(8w8e>vL/JU1uA(PH0QA'PMPHvry/yVFbgA'Dx9EA'DzDx768v8lPW4A(8fRA(8w8e>vL/JTVuA(PH0QA'PMPHvry/yUtbgA'Dx9EA'DzDx768v8lJW4A(8fRA(8w8e>vL/JR1uA(PH0QA'PMPHvry/yUVbgA'Dx9EA'DzDx768v8lDW4A(8fRA(u0kNAwBMKeNIweMFTAH7xfh3TDn7dS5Mie/o0f/(7tJDQMATCnjSMHjBUwB>8X4d0w5>3ThSIPrIEiLA0iJ3/9QCOvsSIPrIEiLA0iJ3/9QCOu>Zi4PH4QA+GaQ8w8e>kFXSI01Ozt7AkiNPeo9A'B'VkFVQVRVU0iD7HhkSIsEJSgA(BIiUQkaDHA6Bv/(>LBQ07ewKFwA>ONBUA'EiNBQYKSgFIiUQkGEiNBc4FbwJIiUQkE'iNBXbAw'BIiUQkKEiNRCRcSIlEJEhIjUQkWEjHBCQBA)SIlEJEBMjS16NBkB62MPH0A'QYtFAIlcJGT32EjB4wWJRCRgSInfSI0FtBZiAEgBx0iNdCRg6AckA'BIjT1LPQA'6Kv>/'9I/wQkSINEJBhQSINEJBAESINEJCgYSIsEJEmDxQ'5BV86ewIPjIgUA'BIi1QkSEiLdCRATInpSI09AT0A'DHASIscJOhC/v/'SIsNi7/DAEi4s5TWJugL'hFI9>lIichIwfg/SMH6Gkgpwkhp0gDKmjtIichIi3wkGEgp0DNEJFiJB0iLfCQ'SGPIiQdIjT2Hz2ICxwSfAQA(EiNPVn>DAGLNI>LVCRciUQkWAHWiTSfSI09Ip'WAokcn0iNPTjTPQGJFJ9BidyF0g>E>v7/'0iN'ElMjQUfv8MAxfluPCRJjTzwSIt3CMTjQSLCAcX51kQkYEg7dxAPhA4UA'BIi0wkYEiDxghIiU74SIl3CEiLXCQoxflu>EiLcwjE40EiwgHF>dZEJGBIO3MQD4T5EwA'SItUJGBIg8YISIlW>EiJcwhIjRUQLz4CSJiLBIJIixwkSIt8JBj/wIkEmkhjBzHS'I010QdKAZBIY8pIjQSASI0EgUhjBIaJRJcESP/CSIP6E3XkSItEJB'MjT2IHQA'iwBIjS2/A28CicN'Y/SFwA>EXgMA'ESJZCQITYn061kPH4QA+HUKRDtLHA>MkgEA'DnGD4>0AQA'RDtLHA>PqgEA'Ek50HQESAN6KE'p/k5jZKUATWP2QotcpQBIjQUizmICTAE1273DAEL/BKCF2w>E7wIA'It0JAiJ3>h0GA(RYt1AEhj0'iJ10EpxkjB5wVIjQVsFGIASAH'iwVLOHsCRI1A'UiLB0iLcBhMOf4PhX8CA'BIi3cQSIteE'yLSChIjQ3cHA(MfZJOckPhSECA'BIi0A4SI0N5hwA'Eg5yA>F3QEA'DH/SDneD4TzAQA'ZpCLQxhIixNBOcYPjNEA(B1CkQ7QxwPjMUA(B'OcYPj/QA(BEO0McD4/qA)SDnydARIA3o'QYn>Qot8pQCLdCQI6LgXA'B'i3UATIn'KcZIwecFSI0FdGoA'EgBx4sFkzd7AkSNSAFIiwdIi1AYTDn6D4UnAQA'SItXE'iLWhBIi1AoSI0NJBwA'EUxwEg5yg>FyA)EiLQDhIjQ0tHA(SDnID4WMA)Mf9JOdgPhKP>/'9mDx>EA+CLQxhIixM5xg>NYv7/'0iJ0'k52HXq6Xz>/'8PH0QA'EiJ0'g58w>F'P/(>lG/)Dx>A+LgBA)STnQdAdIi0IoSP/ASItbCEgBx>u/Zg8fRA(uAEA(BIOfJ0B0iLQihI/8BIi1sISAH'67FmDx9EA'BEiUwkOEyJRCQwiXQkIP/QRItMJDhMi0QkMIt0JCDpUf/(w8fRA(RIlMJDiJdCQwSIl8JCD/0kmJwEyJ4EiNPVNpA'BIweAFSIsEB0SLTCQ4i3QkMEiLfCQg6QD/(8PH4QA+ESJTCQ4iXQkMEiJfCQg/9JIi3wkIEiJw0SLTCQ4SIsHi3QkMOm4/v/'Dx>A+EiJdCQwRIlEJCD/0EiLdCQwRItEJCAx/0g53g>FD/7/'0Ux9ulB/v/'Dx>A+EiJVCQ4RIlEJDBIiXwkIEH/0UiLVCQ4SInGSMHiBUiNBesRYgBIiwQ'RItEJDBIi3wkIOmn/f/'Dx>EA+BIiVQkOESJRCQwSIl8JCD/1kiLfCQgSInDSItUJDhIiwdEi0QkMOle/f/'Dx9EA'BIi0QkE'SLZCQIiwCJx0lj1EiNHYhgSgLrPmYPH0QA'EiN'fnKYgLF6VfSxesqBJZIY89IY0SNAEhj18X7EMjF6yoEjsX7WQXkPgA'xfkvyA>H6gsA'InHhf91xEyJbCQIRYnlDx9A'ESJ5kSJ7>gdFQA'SItcJAhNY/UrA0yJ80jB4wWJwkiNBRMRYgBMjTwYSYN/GA'PhPQHA'BJi08QSItBE'iFwA>Ew'oA'EmJz>sbZg8fRA(dQiLPCQ5eBx8E'mJx0iLAEiFwHQO'1AYfuZIi0AISIXAdfJMOfkPhIwKA'B'O1cYfBYPhV4CA'CLBCRBOUc'D45RAgA'Dx8ASYsHSIXAD4S0DQA'Dx9A'EmJx0iLQAhIhcB19MX5buLEw1ki3AG/MA)MTB>X7d6Cv4/'9MifJIweIFSI09XRBiAEgB>kj/Qh'MiWgYSMdACA*BJiUcISItSE'w7eg'PhHEMA'BMiXgQSMdACA*BIxwA+SDnQdGNMifdIwecFTI0dEhBiAEiJxkyJ>kUxybkBA)TAHf6zUPH4A+SIsKRTHJSIXJdARMi0koSItyCEyLQhC5AQA(EiF9nQHSItOKEj/wUiJ1kyJwk'ByUyJTihIOVcQdcVIi3oQxkAgAUg5>A>EGAEA'EyJ9kiNDaIPYgBIweYFTI0MGUgBzus9Dx9EA'BIhckPhFcEA'CAeSA'D4RNBA(QcZHIABIidDGQSA'xkIgAUiLVhBIi3oQSDnHD4TIA)TIt4E'GAfyA'D4S5A)SYtXE'iLCkw5>XWxSItKCEiFyXQGgHkgAHW1TYtRE'yJ>Uk5RwgPhMEKA'BMi0EIQcZHIADGQiABTIkCTYXAdARJiVAQSIt6E'iJeRBJOVIQD4TWBwA'SDlXCA>E3AkA'EiJD0yLAkiJUQi/AQA(EiJShBNhcB0B0mLeChI/8dMi0I'TYXAdARJA3goTIsBSIl6KDHSTYXAdARJi1AoSI1UFwFIiVEoSItWE'iLehBIOc'PhTj/(9IOdB0OQ8fgA*BIizC5AQA(EiF9nQHSItOKEj/wUiLcAhIhfYPhDcFA'BIA04oSIlIKEiLQB'IOdB1zsZHIABGi2y1AESJ5kSJ7>gyEgA'SIt8JAhNifcrB0nB5wWJwkiNBetkA'BJAcdJg38YA'>EHQ'A'EmLdxBIi0YQSIXAD4QMBwA'SYn36xwPH4A+dQiLPCQ5eBx8E'mJx0iLAEiFwHQO'1AYfuZIi0AISIXAdfJMOf4PhNQGA'B'O1cYfBMPhWMCA'CLBCRBOUc'D45WAgA'SYsHSIXAD4QDCgA'Dx>A+EmJx0iLQAhIhcB19MX5bvLEw0ki7AG/MA)MTB>X7t6EP1/'9MifJIweIFSI09NWQA'EgB>kj/Qh'MiWgYSMdACA*BJiUcISItSE'w7eg'PhIAJA'BMiXgQSMdACA*BIxwA+SDnQdGNMifdIwecFTI0d6mMA'EiJxkyJ>kUxybkBA)TAHf6zUPH4A+SIsKRTHJSIXJdARMi0koSItyCEyLQhC5AQA(EiF9nQHSItOKEj/wUiJ1kyJwk'ByUyJTihIOVcQdcVIi3oQxkAgAUg5xw>EGAEA'EyJ9kiNDXpjA'BIweYFSAHLSAHO6z5mDx9EA'BIhckPhP8BA'CAeSA'D4T1AQA'QcZHIABIidDGQSA'xkIgAUiLVhBIi3oQSDnHD4TIA)TIt4E'GAfyA'D4S5A)SYtXE'iLCkw5>XWxSItKCEiFyXQGgHkgAHW1TItLE'yJ>Uk5RwgPhEkHA'BMi0EIQcZHIADGQiABTIkCTYXAdARJiVAQSIt6E'iJeRBJOVEQD4T>BA(SDlXCA>EBAcA'EiJD0yLAkiJUQi/AQA(EiJShBNhcB0B0mLeChI/8dMi0I'TYXAdARJA3goTIsBSIl6KDHSTYXAdARJi1AoSI1UOgFIiVEoSItWE'iLehBIOc'PhTj/(9IOdB0OQ8fgA*BIizC5AQA(EiF9nQHSItOKEj/wUiLcAhIhfYPhC8CA'BIA04oSIlIKEiLQB'IOcJ1zsZHIABGi2y1AEWF7Q>FJPr/'0iLFZW0w'BIjTX7MQA'vwEA)xwEyLbCQI6L3y/(pnfT/'w8fhA,TYtRE'k5Bw>E4wIA'EiLSghBxkcgAEyLAcZCIAFMiUI'TYXAdARJiVAQSIt6E'iJeRBJOVIQD4TkA)SDkXD4SLAgA'SIlPCEyLQghIiRG/AQA(EiJShBMixJNhdJ0B0mLeihI/8dNhcB0BEkDeChMi0EISIl6KDHSTYXAD4X6>/(6fn7/'8PH4A+TItLE'k5Bw>E4wIA'EiLSghBxkcgAEyLAcZCIAFMiUI'TYXAdARJiVAQSIt6E'iJeRBJOVEQdFBIORcPhA8CA'BIiU8ITItC'EiJEb8BA)SIlKE'yLCk2FyXQHSYt5KEj/x02FwHQESQN4KEyLQ'hIiXo'MdJNhcAPhVb>/(pVf7/'w8fAEmJSRDru2aQSYlKEOk'/)Dx>A+L8wA)iVQkIOiy8f/'i1QkIEn/RxhNi38QiVAYRIlgHEmJRxBJiUcISYkHTIl4E'jHQAgA*SMcA+EmLVxBJOd'0Ng8fhA,SIsyuQEA(BIhfZ0B0iLTihI/8FIi3I'SIX2dDNIA04oSIlK'EiLUhBMOfp10kyJ8kjB4gVIjT0'YA(SItUFxDplfz/'2YuDx>EA+BIiUo'SItSE'k513Wj68>QSIlIKEiLQB'IOdAPhZ/9/(GRyA'RotstQDpzP3/'5BIiUgoSItAE'g50A>Fl/r/'8ZHIADpxPr/'2YPH0QA'L8wA)iVQkIOjC8P/'i1QkIEn/RxhNi38QiVAYRIlgHEmJRxBJiUcISYkHTIl4E'jHQAgA*SMcA+EmLVxBJOd'0Ng8fhA,SIsyuQEA(BIhfZ0B0iLTihI/8FIi3I'SIX2dDNIA04oSIlK'EiLUhBJOd'10kyJ8kjB4gVIjT2ECGIASItUFxDpvfj/'2YuDx>EA+BIiUo'SItSE'k513Wj68>QSIkP6X'9/'8PH4QA+EiJD>nx/f/'Dx>EA+BIi0gISYkPSIXJdAhMiXkQSYtXE'iJUB'NOXoQD4RgBA(TDl6CA>E'AYA'EiJAkmLD0yJeAi6AQA(EmJRxBIhcl0B0iLUShI/8J'i08ISIXJdARIA1EoSIs4SYlXKDHJSIX/dARIi08oSI1UEQFIicFIiVAoTYtRE'iLUB'MifhJic/plPz/'w8fgA*BIi0gISYkPSIXJdAhMiXkQSYtXE'iJUB'NOXkQD4TZAwA'TDl6CA>EdwUA'EiJAkmLD0yJeAi6AQA(EmJRxBIhcl0B0iLUShI/8J'i08ISIXJdARIA1EoSIs4SYlXKDHJSIX/dARIi08oSI1UEQFIicFIiVAoTItLE'iLUB'MifhJic/plPz/'w8fgA*BJiUoQ6TH4/'8PH4A+SYlJEOkJ>/(Dx>A+MX5burEw1Ei5AG/MA)EyLfgjEwfl>5eij7v/'TInySMHiBUiNPZVdA'BIAfpI/0IYTIloGEjHQAgA*SYlHCEiLUhBMO3oID4S1BA(TIl4E'jHQAgA*SMcA+Eg50A>Ev/n/'0yJ90jB5wVMjR1GXQA'TIn6SInGRTHJuQEA(BMAd/rMQ8fAEiLCkUxyUiFyXQETItJKEiLcghMi0IQuQEA(BIhfZ0B0iLTihI/8FIidZMicJ'AclMiU4oSDtXEHXF6Vv5/(F>W7axMNhIvwBvzA)BMi3kIxMH5fv3o0>3/'0yJ8kjB4gVIjT0FBmIASAH6SP9CGEyJaBhIx0AIA*EmJRwhIi1IQTDt6CA>E7gMA'EyJeB'Ix0AIA*EjHA+BIOdAPhAf2/'9MifdIwecFTI0dtgViAEiJxkyJ>kUxybkBA)TAHf6zEPHwBIiwpFMclIhcl0BEyLS'hIi3I'TItCELkBA)SIX2dAdIi04oSP/BSInWTInCSQHJTIlOKEg7VxB1xemj9f/'hcB0FA8fQADHBIMBA)SGNEhQCFwHXw6GMLA'BIY9BIY8KLfIUAhf8PhO3z/'9IY8dmDx9EA'DHBIMA*SGNEhQCFwHXw6cvz/'8PHwBIiU8I6SH2/'8PH4A+SIlPCOn5>P/'Dx>A+EiLCEmJTwhIhckPhCUDA'BMiXkQSYtXE'iJUB'NOXkQD4QGAwA'TDk6D4Q'AwA'SIlC'EmLTwhMiTi6AQA(EmJRxBJiz9Ihf90B0iLVyhI/8JIhcl0BEgDUShIi3gISYlXKDHJSIX/dARIi08oSI1UEQFIiVAoSItQE'iJx0yLSxBMifhIiwpJif/pJ/j/'0iLCEmJTwhIhckPhLACA'BMiXkQSYtXE'iJUB'NOXoQD4SRAgA'TDk6D4SbAgA'SIlC'EmLTwhMiTi6AQA(EmJRxBJiz9Ihf90B0iLVyhI/8JIhcl0BEgDUShIi3gISYlXKDHJSIX/dARIi08oSI1UCgFIiVAoSItQE'iJx02LURBMifhIiwpJif/pr/T/'0iJQgjpd/b/'0iJQgjphvP/'0mJQhDp'/v/'0mJQRDpLvz/'8X5btrEw2Ei/AG/MA)MTB>X796FPr/'9MifJIweIFSI09RVoA'EgB>kj/Qh'MiWgYSMcA+EmJB0iLUhBMOToPhBQCA'BMiXgQSMdACA*BIxwA+SDnQD4Ry9v/'TIn3SMHnBUyNHflZA'BMifpIicZFMcm5AQA(EwB3>s0Zg8fRA(SIsKRTHJSIXJdARMi0koSItyCEyLQhC5AQA(EiF9nQHSItOKEj/wUiJ1kyJwk'ByUyJTihIOVcQdcXpC/b/'8X5bvLEw0ki9AG/MA)MTB>X716Ifq/'9MifJIweIFSI09uQJiAEgB>kj/Qh'MiWgYSMcA+EmJB0iLUhBMOToPhEABA'BMiXgQSMdACA*BIxwA+SDnQD4S>8v/'TIn3SMHnBUyNHW0CYgBIicFMif5FMcm6AQA(EwB3>s4Zi4PH4QA+EiLFkUxyUiF0nQETItK'EiLTghMi0YQugEA(BIhcl0B0iLUShI/8JIifFMicZJAdFMiUkoSItXE'g58nXC6VDy/'9IiUI'6Yb6/'9IiUI'6e35/'9IiUI'6UL7/'9IiUI'6Qn8/'9Ii0QkaGRIKwQlKA*>FjgA(EiDxHhbXUFcQV1BXjHAQV/DSYlBEOkC/f/'SIlQE'05eRB07UiJAunw/P/'SYlCEOl3/f/'SIlQE'05ehB07UiJAul'/f/'SGvJGEiNVCRgSo08AejsFQA'i0QkWItUJFzp5Ov/'0iLfCQoSI1UJGDo0BUA'ItEJFjpAOz/'0iJAum4/v/'SIkC6eT9/(oIun/'2aQ8w8e>lVIjT0gJXsCSInlQVdBVkFVQVRTSIPsCOgf6f/'SIs9kFcA'EiNFZlXA'BIjTX2JHsC6LXo/'9IjQVeqsMASI2QwD5JAMX578APHwDF/X8Axf1/QCDF/X9AQEiDwGBIOdB16UiNFVpXA(x9kiNPTkDA'BIxwXe6AwBA*EjHBdvoDAEA*SMcF2OgMAQA)BIxwXV6AwBA*EjHBdLoDAEA*SMcFz>gMAQA)DF>HdMjT19AGIA6Cjo/'9BvEkNAwBMiftMjS1wUgA'TI01uVIA'JBMiSu/MA)OgT6P/'SIlDE'jHQxgA*TIkzSMdAEA*BIiQBIiUAIxkAgAUiDwyBJg>wBc8dIjRWoVgA'MfZIjT0HAgA'TI090FYA'Oi75/(QbxJDQMATIn7ZpBMiSu/MA)Oiz5/(SIlDE'jHQxgA*TIkzSMdAEA*BIiQBIiUAIxkAgAUiDwyBJg>wBc8cx9kiNFUZWA'BIjT3nAQA'6GLn/'>APaMjewIAdBiAPZIjewIAdDJIg8QIW0FcQV1BXkFfXcNIjRUSVgA'SI01hCN7AkiNPUwIA'DGBW0jewIB6CDn/(rxcYFVyN7AgFYW0FcQV1BXkFfSI0V3lUA'EiN'U8jewJIjT0YCA(Xeny5v/'8w8e>kmJxel25/(8w8e>kmJxemJ5/(Zi4PH4QA+PMPHvoPrlwk/IFMJPxAgA(D65UJPzDZg8fhA,8w8e>jHtSYnRXkiJ4kiD5PBQVEyNBRY'A'BIjQ2fFwA'SI09eOf/(8VMlUA'PSQSI09YVUA'EiNBVpVA'BIOfh0FUiLBQ5VA'BIhcB0Cf/gDx>A+M'PH4A+SI09MVUA'EiN'SpVA'BIKf5IifBIwe4/SMH4A0gBxkjR/nQUSIsF5VQA'EiFwHQI/>BmDx9EA'D(x>A+PMPHvqAPfVUA)dStVSIM9mlQA(BIieV0DEiLPcZUA'DoqeX/'>hk/)xgXNVA)V3D'x8Aw'8fgA*DzDx76'Xf/(8PH4A+8w8e>kFUV'NIjR0hp8MATI2j4Fae/2YuDx>EA+BIiwNIid9Iid3/UAhIg>sgTDnldetbXUFcw2YPH0QA'PMPHvpBVFVTSI0dof1hAEyNo>BWnv9mLg8fhA,SIsDSInfSInd/1AISIPrIEw5'X'rW1'BXMNmDx9EA'DzDx76V'NIjR275QwBSI2rKMG2/0iD7AjrHmYPH0QA'EiLcxBIKf7oNOX/'0iNQ>hIOet0FEiJw0iLO0iF/3XgSI1D6Eg563XsSIPECFtdw/MPHvpBV0iNBZOmw'B'VkyN'aq2YgJBVUFUTGPnS40UZFVIjQTQTInhU0iD7BhIixhMi3gIQ8cEpgEA(BJOd8PhMoA(DF>XbAQYn1xflvyEiNLehLSgJMjQUBhTEBSGMDRDnodAiLVIUAhdJ0U'iDw'hJOd9158SBeW4EpsX5b9DF>W4FBro9AcX5>sLE4nk9wcX5fsA5Beu5PQF>DokN57k9AcX5fgXbuT0BSIPEGFtdQVxBXUFeQV/D'x9A'ItTBInOQwMUoEGJFICJTCQIxfl>TCQMizvoIv/(0hjA8X5bkwkDEGLBIaLTCQIQwE'pkyNBWaEMQFIYwPEwXluBIbE4nE9yOli/)Dx8AxflvBagpA'DF8XbJxflv0Old/)ZmYuDx>EA+DzDx76VUxjx0yNHWHkDAFTSGPGSI0dthU>AkWLFINCiy'DixSDTYnBRwMUgznVfBCJ8ESJxkxjwInVTYnBSGPGuhMA(BIjT1k7k'B6wVmkEhjxkhjykiNBIBIjQSBSGM'hzksiw9N8YPqAXPjuRMA(BIY8ZBOfF0YGYPH0QA'Ehj0UyNDIBLjRyATo0MikiNFJpOYwyPixSX/8lEOcp0F4P5/3QaSWPBSInGTGPC68'PH4A+g/n/dcNMY85LjQSJSMHgBEhjBAdbQYsUg0SJ0AHSKdBdw0OLFINEidAB0lsp0F3D'x>EA+DzDx76QVdMjT3zTSUBQVZMjTWKtGICQV'BifVBVFVIY>9TSI0dlxgZAUiD7DhIYz04uD0BZEiLBCUoA)SIlEJCgxwEjB5wVIjQXR>mEASAH'QYsEr0iNdCQYKwSrQc'ErgEA(CJRCQYiWwkHOgNCA(SGM98rc9AUiNBV9RA'BIwecFSAH'SI0FsYIxAYsEqEiNdCQgKwSriUQkI'lsJCTo2QcA'EiNVG0ASI0FzaPDAEiNBNBIixhMi0AISTnYdCJ'iexIjRVTSUoCSGMDRDnodAeLDIKFyXQsSIPDCEk52HXoSItEJChkSCsEJSgA(B1RkiDxDhbXUFcQV1BXkFfw'8fQACLSwREieZBAwyvQYkMh0yJRCQIizvo3v7/'0hjA0yLRCQIQYsEhkiNFetISgJBAQSu6'HowOH/(MPHvpBV0xjz'H2QVZMjTWM6G4CQV'MjS3LSwA'QVRMjSUatz0BVUiNLfJ9VgJTSIPsSGRIiwQlKA)EiJRCQ4McBIjQUWs2ICQosEiEpjVI0AQ4sMjIkF07Y9AUiNBZyBMQGJDJBIidfHBbS2PQEAypo76Cf8/'9Ci0SNAEhjHae2PQG/MA)IlEnQBDiwSMTIlsJB(iQScQ4sEjkyNfCQ(YkEnkiNBTH5YQBIweMFSAHD6OXg/'9Ix0AQA*EiLUxBIiQBIiUMQSIlACMZAIAFIi0MYSMdDGA*BMif9IiVQkIEiJRCQoTIlsJBDoxw4A'EiLfCQgvjA)DoqOD/'0hjHR2'PQFIjQWKTwA'vzA)BIweMFSAHDTIlsJBDodOD/'0jHQBA+SItTE'iJAEiJQxBIiUAIxkAgAUiLQxhIx0MYA*EyJ/0iJVCQgSIlEJChMiWwkEOhWDgA'SIt8JC'>MA)Og34P/'SGMVrLU9AUiNBTlLJQH'BJA+SInXMfboKP3/'0hjDY21PQFIjQWaocMASI0USUiNBNBIixhMi3gITI0tJEdKAkH'RI0A'QA(EmJyEw5>3QVSGMDQYt0hQCF9nQ3SIPDCEk53'XrQcdEjQA+SItEJDhkSCsEJSgA(B1REiDxEhbXUFcQV1BXkSJwEFfw'8fAIlEhQBIiUwkCESJRCQEi1MEQYkUhEhjA0WJBIaLO>jN/f/'SItMJAhEi0QkBOua6Hzf/'9mLg8fhA,ZpDzDx76SItHEM'PH4A+8w8e>kiLRxBIi0AQw'8fAPMPHvpIi0cQSItAEM'PHwDzDx76McD'Zg8fhA,8w8e>jHAw2YPH4QA+PMPHvpIifjD'x>EA+DzDx76w2YuDx>EA+CQ'VdBVkFVQVRVSIn9TIsnTYXkD4QeAgA'TYs'JE2F7Q>E>wA(E2LdQBNhfZ0bk2LPk2F/3QoSYs/SIX/dAXovf/(0mLfwhIhf90Beiv/)vjA)BMif/okt7/'02LfghNhf90KEmLP0iF/3QF6Iz/(9Ji38ISIX/dAXofv/(74wA)TIn/6GHe/'>'MA)EyJ9>hU3v/'TYt1CE2F9nRuTYs>TYX/dChJiz9Ihf90BehG/)SYt/CEiF/3QF6Dj/(>'MA)EyJ/>gb3v/'TYt>CE2F/3QoSYs/SIX/dAXoFf/(0mLfwhIhf90BegH/)vjA)BMif/o6t3/'74wA)TIn36N3d/'>'MA)EyJ7>jQ3f/'TYtsJAhNhe0PhPsA(BNi3UATYX2dG5Niz5Nhf90KEmLP0iF/3QF6LT>/'9Ji38ISIX/dAXopv7/'74wA)TIn/6Ind/'9Ni34ITYX/dChJiz9Ihf90BeiD/v/'SYt/CEiF/3QF6HX>/'>'MA)EyJ/>hY3f/'vjA)BMif'oS93/'02LdQhNhfZ0bk2LPk2F/3QoSYs/SIX/dAXoPf7/'0mLfwhIhf90Begv/v/'vjA)BMif/oEt3/'02LfghNhf90KEmLP0iF/3QF6Az>/'9Ji38ISIX/dAXo/v3/'74wA)TIn/6OHc/'>'MA)EyJ9>jU3P/'vjA)BMie/ox9z/'74wA)TIn'6Lrc/'9Mi2UITYXkD4QeAgA'TYs'JE2F7Q>E>wA(E2LdQBNhfZ0bk2LPk2F/3QoSYs/SIX/dAXokv3/'0mLfwhIhf90BeiE/f/'vjA)BMif/oZ9z/'02LfghNhf90KEmLP0iF/3QF6GH9/'9Ji38ISIX/dAXoU/3/'74wA)TIn/6Dbc/'>'MA)EyJ9>gp3P/'TYt1CE2F9nRuTYs>TYX/dChJiz9Ihf90Begb/f/'SYt/CEiF/3QF6A39/'>'MA)EyJ/>jw2/(TYt>CE2F/3QoSYs/SIX/dAXo6vz/'0mLfwhIhf90Bejc/P/'vjA)BMif/ov9v/'74wA)TIn36L'b/'>'MA)EyJ7>il2/(TYtsJAhNhe0PhPsA(BNi3UATYX2dG5Niz5Nhf90KEmLP0iF/3QF6In8/'9Ji38ISIX/dAXoe/z/'74wA)TIn/6F7b/'9Ni34ITYX/dChJiz9Ihf90BehY/P/'SYt/CEiF/3QF6Er8/'>'MA)EyJ/>gt2/(vjA)BMif'oINv/'02LdQhNhfZ0bk2LPk2F/3QoSYs/SIX/dAXoEvz/'0mLfwhIhf90BegE/P/'vjA)BMif/o59r/'02LfghNhf90KEmLP0iF/3QF6OH7/'9Ji38ISIX/dAXo0/v/'74wA)TIn/6Lba/'>'MA)EyJ9>ip2v/'vjA)BMie/onNr/'74wA)TIn'6I/a/'9Iie9dQVxBXUFevjA)B'X>l52v/'Zg8fhA,8w8e>kFVSYn1QVRVSIn9U0iD7AhIg38YA'>EYQMA'EiLTxBIi0EQSIXAD4SwBA(ixZJiczrH2YPH4QA+HUJQYtdBDlYH'wQSYnESIsASIXAdA45UBh95UiLQAhIhcB18kw54Q>EcwQA'E'7VCQYD40oAgA'SYsEJEiFwA>EqwUA(8fAEiJw0iLQAhIhcB19L8wA)6MLZ/'9JicRJi0UAScdEJAgA*SP9FGEmJRCQYTIljCEiLTRBIO1kID4TvAwA'SYlcJB'Jx0QkCA*BJxwQkA*Ek5zHRNTIn'SInaMfa4AQA(OsyDx9EA'BIiwIx9kiFwHQESItwKEiLeghMi0IQuAEA(BIhf90B0iLRyhI/8BIid'MicJIAfBIiUcoSDnRdcdIi3EQ'cZEJCABTDnmD4TB'QA'TIni6zoPH4A+SIX2D4RnAQA'gH4gA'>EXQEA'MZDIADGRiA'xkAgAUiJwkiLcRBIOdYPhMkA(BIi1oQgHsgA'>EuwA(EiLQxBIizBIOd51t0iLcAhIhfZ0BoB>IAB1u0yLTRBJidhIOVMID4TnAwA'SYt4CMZDIADGQCABSIk4SIX/dARIiUcQSItwE'mJcB'JOUEQD4TtAgA'SDlGCA>EowMA'EyJBkiLOEmJQAi>AQA(EyJQB'Ihf90B0iLdyhI/8ZIi3gISIX/dARIA3coSYs4SIlwKDHASIX/dARIi0coSI1EBgFIi3EQSYlAKEg51g>FPv/(w8fgA*BIOcp0NQ8fAEiLOrgBA)SIX/dAdIi0coSP/ASIt6CEiF/w>E7wA(EgDRyhIiUIoSItSE'g5ynXOxkYgALgBA)SIPECFtdMdKIwkyJ4EFcQV3D'x8AuA*B15EGLTCQcQTlNBH3Z6cH9/'9mDx>EA+BMi0'QSDkTD4RjAQA'SItwCMZDIABMiwbGQCABTIlACE2FwHQESYlAE'iLeB'IiX4QSTlBEHRZSDkHD4QgAQA'SIl3CEyLQAhIiQa/AQA(EiJcB'MiwhNhcl0B0mLeShI/8dNhcB0BEkDeChMi0YISIl4KDHATYXAdARJi0AoSI1EOAFIiUYo6SX>/'8PHwBJiXEQ67JmLg8fhA,SIlCKEiLUhBIOdEPhd/>/(pDP/(2YuDx>EA+C/MA)OjW1v/'SYnESItdE'mLRQBI/0UYSYlEJBhMiWMQTIljCEyJI0mJXCQ'ScdEJAgA*Sc'EJA*BIi3MQSInwSDnzdDMPH0QA'EiLCLoBA)SIXJdAdIi1EoSP/CSItICEiFyXQjSANRKEiJUChIi0AQSDnDd'JIidnpL/3/'2YuDx>EA+BIiVAoSItAE'g5w3Wz69>QSIk36eD>/'8PH4QA+EiLcghIiTNIhfZ0CEiJXhBIi0MQSIlCE'k5WRB0ekg5WAgPhIkCA'BIiRBIizNIiVoIuAEA(BIiVMQSIX2dAdIi0YoSP/ASItzCEiF9nQESANGKEiLOkiJQygx9kiF/3QESIt3KEiNRAYBSInWSIlCKEyLTRBIi0IQSInaSInz6Rj>/'8PHwBMiWEI6Qj8/'8PH4A+SYlREOuQZpBNiUEQ6Rr9/'8PH4A+vzA)BIi1kI6HLV/'9JicRJi0UAScdEJAgA*SP9FGEmJRCQYTIljCEiLTRBIO1kID4TRAQA'SYlcJB'Jx0QkCA*BJxwQkA*Ek5zA>E>fv/'0iJ2kyJ5zH2uAEA(DrNmYPH4QA+EiLAjH2SIXAdARIi3AoSIt6CEyLQhC4AQA(EiF/3QHSItHKEj/wEiJ10yJwkgB8EiJRyhIOdF1x>mj>/(ZpBMiUYI6Vr8/'8PH4A+SIsySIlzCEiF9g>EQwEA'EiJXhBIi0MQSIlCE'k5WRAPhAoBA'BIORgPhC4BA'BIiVAISItzCEiJGrgBA)SIlTE'iLO0iF/3QHSItHKEj/wEiF9nQESANGKEiLeghIiUMoMfZIhf90BEiLdyhIjUQGAUiJQihIi0IQSInWTItNE'iJ2kyLAEiJ8>mJ>/(vzA)DoJtT/'0mJwEmLRQBJxwA+SP9FGEmJQBhNiQ'kSItNE'w5IXR8TYlgE'nHQAgA*Sc'A+Ek5yHRMTInHTIngMdK>AQA(OsxDx9A'EiLMDHS'IX2dARIi1YoSIt4CEyLSBC>AQA(EiF/3QHSIt3KEj/xkiJx0yJyEgB8kiJVyhIOcF1x0yJ40iLcRBNicTpZfr/'0mJURDp/v7/'0yJAel8/)SIlQCOl0/f/'TIlhCOkm/v/'SIlCE'k5WRB0(iJEOnS/v/'SIny6Tv7/'8PHwDzDx76QVdBVkFVQVRVU0i7/.w9Ig>wYTIt3CEyL'0yJ8Ewp6EjB>ANIOdgPhCkBA'BIhcBJide6AQA(EgPRdAxyUgB0A>SwUiJ8kiJ/UmJ9Ewp6kiFyQ>F7gA(EiFwHVZMdtJiwdNifBMjUwRCE0p4EiJB'FMi30QT40'AUiF0n9oTYXAD4>fA)TYXtdX9IiV0QxOH5bsnEw/EixgHF>n9FAEiDxBhbXUFcQV1BXkFfw'8fgA*BIOdhID0fDSI0cxQA)BIid9IiRQk6HXS/'9IicFIixQkSAHD64JmDx>EA+BIic9Mie5MiUQkCEyJDCTorNL/'0yLRCQITIsMJE2FwEiJwX8bTIn>TCnuTInvSIkMJOg50v/'SIsMJOlm/)TInCTInmTInPSIkMJOju0f/'SIsMJOlG/)Dx9EA'BIu/j/,9/6XD/(9IjT2uEA(6LXR/'8PH0QA'PMPHvpBVkFVQVRVU0iJ>0iLRxBMi2AQTYXkD4S9AQA'SYs'JEiF7Q>E2gA(EyLbQBNhe10TE2LdQBNhfZ0KEmLPkiF/3QF6LTy/'9Ji34ISIX/dAXopvL/'74wA)TIn36InR/'9Ji30ISIX/dAXoi/L/'74wA)TInv6G7R/'9Mi20ITYXtdG9Ni3UATYX2dChJiz5Ihf90Behf8v/'SYt>CEiF/3QF6FHy/'>'MA)EyJ9>g0'f/'TYt1CE2F9nQoSYs>SIX/dAXoLvL/'0mLfghIhf90Beg'8v/'vjA)BMif'oA9H/'74wA)TInv6PbQ/'>'MA)EiJ7>jp0P/'SYtsJAhIhe0PhLcA(BMi20ATYXtdExJi30ASIX/dAXo1PH/'02LdQhNhfZ0KEmLPkiF/3QF6L7x/'9Ji34ISIX/dAXosPH/'74wA)TIn36JPQ/'>'MA)EyJ7>iG0P/'TIt'CE2F7XRMTYt1AE2F9nQoSYs>SIX/dAXod/H/'0mLfghIhf90Behp8f/'vjA)BMif'oTND/'0mLfQhIhf90BehO8f/'vjA)BMie/oMdD/'74wA)SInv6CTQ/'>'MA)EyJ5>gX0P/'SItDE'jHQBA+SIkASIlACEjHQxgA*W1'BXEFdQV7D'x8A8w8e>kiNBR06A'BTSIkHSIn76On9/'9Ii3sQvjA)Bb6crP/'9mLg8fhA,8w8e>kiNBe05A'BVSIkHSIn96Ln9/'9Ii30QvjA)Dom8/(0iJ7'4gA)XemNz/(Zi4PH4QA,8fAPMPHvpIjQWtOQA'U0iJB0iJ>'h5/f/'SIt7EL4wA)W>laz/(Zi4PH4QA+PMPHvpIjQV9OQA'VUiJB0iJ/ehJ/f/'SIt9EL4wA)6CvP/'9Iie>'IA)F3pHc/(2YuDx>EA,PHwDzDx76QVdMjT0LOQA'QVZJidZBVUmJ9UFUQYn8VUiNLQw5A'BT'Cn9SIPsCOiPzf/'SMH9A3QfMdsPH4A+TInyTInuRIn'Qf8U30iDw'FIOd1'6kiDxAhbXUFcQV1BXkFfw2ZmLg8fhA,8w8e>sMA(DzDx76SIPsCEiDxAjDA)*&,QACAHZlY3Rvcjo6X01fcmVhbGxvY19pbnNlcnQAJSpkJWQAJWQlZCVkADA'JWxsZAoA&-E4xMF9fZ251X3BiZHM2ZGV0YWlsMTVtYXliZV9udWxsX3R5cGVJU3Q0cGFpcklpaUVOU185bnVsbF90eXBlRVNhSWNFTGIwRUVFA'.FN0MTViaW5hcnlfZnVuY3Rpb25JU3Q0cGFpcklpaUVTMV9iRQA&*FN0NGxlc3NJU3Q0cGFpcklpaUVFA(,E4xMF9fZ251X3BiZHM2ZGV0YWlsMTJ0eXBlc190cmFpdHNJU3Q0cGFpcklpaUVOU185bnVsbF90eXBlRVNhSWNFTGIwRUVFA((E4xMF9fZ251X3BiZHM2ZGV0YWlsMTNicmFuY2hfcG9saWN5SU5TMF8zMGJpbl9zZWFyY2hfdHJlZV9jb25zdF9ub2RlX2l0X0lOUzBfMTNyYl90cmVlX25vZGVfSVN0NHBhaXJ'aWlFbVNhSWNFRUVOUzBfMjViaW5fc2VhcmNoX3RyZWVfY29uc3RfaXRfSVBTN19TNV9QUzVfUEtTNV9SUzVfUlNCX0xiMUVTNl9FRVNGX1M2X0VFU0dfUzZfRU'A)&TjEwX19nbnVfcGJkczMzdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlSU5TXzZkZXRhaWwzMGJpbl9zZWFyY2hfdHJlZV9jb25zdF9ub2RlX2l0X0lOUzFfMTNyYl90cmVlX25vZGVfSVN0NHBhaXJ'aWlFbVNhSWNFRUVOUzFfMjViaW5fc2VhcmNoX3RyZWVfY29uc3RfaXRfSVBTN19TNV9QUzVfUEtTNV9SUzVfUlNCX0xiMUVTNl9FRVNGX1M2X0VFU0dfU3Q0bGVzc0lTNV9FUzZfRU'A)'E4xMF9fZ251X3BiZHM2ZGV0YWlsMTliaW5fc2VhcmNoX3RyZWVfc2V0SVN0NHBhaXJ'aWlFTlNfOW51bGxfdHlwZUVTdDRsZXNzSVMzX0VOUzBfMTF0cmVlX3RyYWl0c0lTM19TNF9TNl9OU18zM3RyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZUVOU18xMXJiX3RyZWVfdGFnRVNhSWNFRUVTQV9FRQA'(E4xMF9fZ251X3BiZHM2ZGV0YWlsMTFyYl90cmVlX3NldElTdDRwYWlySWlpRU5TXzludWxsX3R5cGVFU3Q0bGVzc0lTM19FTlMwXzExdHJlZV90cmFpdHNJUzNfUzRfUzZfTlNfMzN0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGVFTlNfMTFyYl90cmVlX3RhZ0VTYUljRUVFU0FfRU'A()E4xMF9fZ251X3BiZHMxMmJhc2ljX2JyYW5jaElTdDRwYWlySWlpRU5TXzludWxsX3R5cGVFTlNfMTFyYl90cmVlX3RhZ0VOU18zM3RyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZUlOU182ZGV0YWlsMzBiaW5fc2VhcmNoX3RyZWVfY29uc3Rfbm9kZV9pdF9JTlM2XzEzcmJfdHJlZV9ub2RlX0lTMl9tU2FJY0VFRU5TNl8yNWJpbl9zZWFyY2hfdHJlZV9jb25zdF9pdF9JUFNBX1MyX1BTMl9QS1MyX1JTMl9SU0VfTGIxRVM5X0VFU0lfUzlfRUVTSl9TdDRsZXNzSVMyX0VTOV9FRU45X19nbnVfY3h4OHR5cGVsaXN0NG5vZGVJTlNPXzVjaGFpbklT'F9OU1FfSU5TNl8xMXRyZWVfdHJhaXRzSVMyX1MzX1NMX1M1X1M0X1M5X0VFTlNPXzludWxsX3R5cGVFRUVFRUVFUzlfRU'A)&TjEwX19nbnVfcGJkczR0cmVlSVN0NHBhaXJ'aWlFTlNfOW51bGxfdHlwZUVTdDRsZXNzSVMyX0VOU18xMXJiX3RyZWVfdGFnRU5TXzMzdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlRVNhSWNFRU'A&'1U3BsYXlJU3Q0cGFpcklpaUVFA&-EA',DoPwEbAzsMAQA'IA*i5/'9A'QA'2Ln/'2gBA'Douf/'gAEA'Ki6/'8EBgA'CLv/'ygFA(o0f/'mAUA'EjT/'>ABgA'aNP/'ygBA'BY1P/'mAEA'JjU/(EAQA'2NT/'3wCA(o1f/'4AIA'FjW/'8sAwA'SNf/'5QDA'CI2P/'2AQA'Nja/(wAQA'6Nr/'wQCA'D42v/'GAIA(jb/'8sAgA'GNv/'0ACA(o2/(VAIA'Djb/'9oAgA'SNv/'6QCA'DI3/(WAMA'Njm/(gAwA'SOj/'ywEA'BI6v/'aAQA'Hjq/'>EBA(uOr/'6AEA'Do6v/'vAQA'Cjr/'8gBgA'mOv/'2gGA-FA&%BelIA'XgQARsMBwiQAQA'FA)BwA)40v/'LwA)BEBxA+JA)DQA(DAt/(0A+OE'YOGEoPC3cIgA'/GjoqMyQiA*BQA(BcA)aLj/'xA&*BQA(B0A)YLj/'8A&*CgA(CMA)uNL/'zoA*Rg4QjAJBDhiGA0EOI'MEbg4YQ'4Q'g4IA)KA)LgA(DM0v/'OgA)BGDhCMAkEOGIYDQ'4g'wRuDh'BDhBCDg'A)QA)5A)ODY/'8JA.BA)D4A)3Nj/'w0A.EA*wBA'DY2P/'DQA.QA)IAEA'NTY/'8HA.BA*0AQA'0Nj/'wcA.EA)EgBA'DM2P/'CA&%QA)XAEA'MjY/'8FA.CQA(BwAQA'VNL/'1A+RQ4QhgJBDhiDA1IOIHUOGE'OE(OCA'4A)mAEA'JzY/'93BA)EIOEI8CQg4YjgNCDiCNBEIOKIwFQ'4whgYDXAQOKEIOIEIOGEIOE'cOCABIA)1AEA'EDS/'8lAQA(EYOEI8CSQ4YjgNJDiCNBEIOKIwFSA4whgZIDjiDB0QOUAKDCg4'Q'4wQ'4oQg4gQg4YQg4Q'g4IRQsAKA)CACA(k0/(6A*BFDhCGAksOGIMDAr0KDhBMDghBC0oOE'MOCA'4A)TAIA'Gjc/'8NBwA(EYOEI0CRQ4YjANBDiCGBEQOKIMFRA4wA3sC'g4oQ'4gQ'4YSQ4Q'g4IRAtIA)iAIA'KzT/'9A'QA(EYOEI8CSQ4YjgNJDiCNBEUOKIwFQ'4whgZEDjiDB0sOcALMCg4'Q'4wQ'4oQg4gQg4YQg4Q'g4IRQsASA)NQCA'Dw4v/'awEA(BGDhCPAkIOGI4DQg4gjQRCDi'MBUEOMIYGQ'4'gwdODlACkgoO'E'OME'OKEIOIEIOGEIOE'IOCEgLADgA)gAwA'FOT/(0BA)Rg4QjgJCDhiNA0IOI'wEQ'4ohgVBDjCDBgPpAQ4oQ'4gQg4YQg4Q'g4IABgA(BcAwA'2OX/'yYA*TA4QgwJVDg'A)YA)eAMA'Ozl/'8zA*EwOEIYCYg4IA)GA)JQDA(Q5v/'JgA)BMDhCDAlUOCA)BgA(CwAwA'JOb/'zMA*TA4QhgJiDg'A(BMA)zAMA'KjT/'9EAgA(EYOEI8CRw4YjgNJDiCNBEkOKIwFSA4whgZIDjiDB0QOgAEDzAEKDjhBDjB'DihCDiBCDh'CDhBFDghECwA(EwA)cBA(2LX/'x4WA)Rg4QjwJQDhiOA0IOI'0EQg4ojAVBDjCGBkEO'IMHRA6wAQNvFQoO'E'OME'OKEIOIEIOGEIOE'QOCE'LA)HA&%BelBMUgABeBAHm20jA(bGw'HCJABA(4A)JA)IjL/'8WAgA'BO8A(BFDhCGAkoNBk2PA4'EjQWMBoMHA5IBCgwHCE'LAkoKDAcIRQsA)sA&%F6UExSA'F4EAebESMA'BsbDAcIkAEMBhCDB4YCjAaNBY4EjwMA)YA)NA)Jy0/'9UA)BJcA&(RA)BQFA)5f/'ZQA)BGDhCPAk'OGI4DRQ4gjQRFDi'MBUQOMIYGSA4'gwdHDkBuDjhBDjB'DihCDiBCDh'CDhBCDg'AFA)FwFA(o5f/'BQA&)EA)HQFA'DAzP/'FwA&)/'8BEBwFA'DoAQWKBADIAgX>AwD/'wE'GgUA)+'+GA7A-QDgA,BgOgA,CA7A&-CgjA-PB'A-YFEA,CQUQA-BCA-E'IA-gQgA,DBCA-QEIA&-DCNA-8E'A,DQUQA-BSA.EIA-Q'gA,CBCA-MEIA,BAQgA&-QGA&.KBgA&-DQYA-CiMA'%YQA,BiMA&-BgYQA&-QGIA&)QA(GiMA'.EBjA&)MA)4jA.IA.UIwA-C'A-HiMA.gA'%BkA-oIwA&-MBkA-6IwA&-GBmA.I0A&-OBmA-GI0A-BA&%EA&%QA./AQA-EA.XAEA-MA&&gA-DQA-C4UgA,BkA.WIsA-bA.BgA.GgA-BwiwA,BwA.CA.D1/v9vA*KADA-BQA-DwBQA-YA.yAMA-KA.DgCA-CwA.YA.BUA'%DA.FiPA.gA.gAQA,BQA.BwA.XA.OgOA-BwA.YCQA-gA.0AUA-JA.BgA.HgA.IA.Pv/'28A+QA'CA*D>/'9vA*FgIA-/)bwA*DA.PD/'28A*KAgA,D5/'9vA*CwA&&*BIjQA'.wIA-EAgA-UCA-BgIA-HAgA-gCA-CQIA-KAgA-sCA-DAIA-NAgA-4CA-)iQA&-BHQ0M6IChVYnVudHUgMTAuMi4wLTV1YnVudHUxfjIwLjA0KSAxMC4yLjA(C5zaHN0cnRhYgAuaW50ZXJwAC5ub3RlLmdudS5wcm9wZXJ0eQAubm90ZS5nbnUuYnVpbGQtaWQALm5vdGUuQUJ'LXRhZwAuZ251Lmh'c2gALmR5bnN5bQAuZHluc3RyAC5nbnUudmVyc2lvbgAuZ251LnZlcnNpb25fcgAucmVsYS5keW4ALnJlbGEucGx0AC5pbml0AC5wbHQuZ290AC5wbHQuc2VjAC50ZXh0AC5maW5pAC5yb2RhdGEALmVoX2ZyYW1lX2hkcgAuZWhfZnJhbWUALmdjY19leGNlcHRfdGFibGUALmluaXRfYXJyYXkALmZpbmlfYXJyYXkALmRhdGEucmVsLnJvAC5keW5hbWljAC5kYXRhAC5ic3MALmNvbW1lbnQA.'LA*QA)IA.GAMA-YAwA,BwA'%BA'%EwA)cA)CA.DgDA-OAMA-gA'%CA'%CYA)HA*gA-BYAwA,FgDA-JA'&QA'%5A)BwA)IA.fAMA,B8AwA,CA'&EA'%RwA(Pb/'28CA.KADA-oAMA-kA&%YA.CA'%FEA)LA*gA-DIAwA,MgDA-KAIA-HA*QA)gA.GA.BZA*wA)IA.8AUA,DwBQA,DgCA&.BA'%YQA(P/(28CA.CgIA-KAgA-uA&%YA&%gA.CA.G4A(D>/'9vAgA-BYCA-FgIA-wA&%HA*wA)gA&.B9A)BA*IA.GAkA-YCQA,NAFA-BgA.IA.BgA.hwA)QA(BCA.OgOA-6A4A-gAQA-YA)aA)CA&%YA.JEA)BA)BgA&%IA&%gA-GwA'%QA&.CMA*QA)YA.ICA.gIA-NA'&QA.BA&%lwA)EA)GA.PAgA-8CA.QA'%EA&%QA.KA*BA)BgA&%IQA.hA-wA'%BA&%EA.CpA*QA)YA.wCEA,DAIQA,PUwA&.QA'%rwA)EA)GA.LhSA-uFIA-NA'%BA'%LUA)BA*gA&%YA.BgA-GAcA&-CA'%C9A*QA)IA.G'cA-YZwA-wBA&.EA'%ywA)EA)CA.ChoA-KGgA,CIBQA&-CA'%NUA)BA*gA-CwbQA,LBtA-HA'&EA&.DnA)DgA)MA.WIsA,BYewA,BgA'%IA&%gA.8wA)8A)DA.HCLA-cHsA-IA'%CA&%IA.P8A)BA*wA-B4iwA,Hh7A-0AEA&.gA'%MAQA'BgA)MA.SI0A,BIfQA,BACA-BwA.IA.BA&%mwA)EA)DA.FiPA-WH8A,CoA'%CA&%IA.BUBA(BA*wA&%kA.CA.GA'&gA'%bAQA'CA*MA.IJA.YgA-GjNegIA&+gA'%IAEA(EA)wA'%GIA.rA'&QA.BA&%EA)DA'*EOA.KQEA&.EA'%=" 9 | ;char dtb[128],tmp[1<<20],buf[1<<20],cmd[128]; 10 | void init_tb(){ 11 | int p=0; 12 | for(int i='A';i<='Z';i++)dtb[i]=p++; 13 | for(int i='a';i<='z';i++)dtb[i]=p++; 14 | for(int i='0';i<='9';i++)dtb[i]=p++; 15 | dtb[(int)'>']=p++;dtb[(int)'/']=p++; 16 | dtb[(int)'=']=0; 17 | } 18 | int from_base64(const char *c,char *o,int l){ 19 | assert((l&3)==0);int p=0,r=l/4*3; 20 | for(int i=0;i>16;o[p++]=s>>8&255;o[p++]=s&255; 23 | if(c[i+2]=='=')--r; 24 | if(c[i+3]=='=')--r; 25 | } 26 | o[p++]=0;return r; 27 | } 28 | int from_rle(const char *c,char *o,int l){ 29 | int p=0; 30 | for(int i=0;i 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU Affero General Public License is a free, copyleft license for 11 | software and other kinds of works, specifically designed to ensure 12 | cooperation with the community in the case of network server software. 13 | 14 | The licenses for most software and other practical works are designed 15 | to take away your freedom to share and change the works. By contrast, 16 | our General Public Licenses are intended to guarantee your freedom to 17 | share and change all versions of a program--to make sure it remains free 18 | software for all its users. 19 | 20 | When we speak of free software, we are referring to freedom, not 21 | price. Our General Public Licenses are designed to make sure that you 22 | have the freedom to distribute copies of free software (and charge for 23 | them if you wish), that you receive source code or can get it if you 24 | want it, that you can change the software or use pieces of it in new 25 | free programs, and that you know you can do these things. 26 | 27 | Developers that use our General Public Licenses protect your rights 28 | with two steps: (1) assert copyright on the software, and (2) offer 29 | you this License which gives you legal permission to copy, distribute 30 | and/or modify the software. 31 | 32 | A secondary benefit of defending all users' freedom is that 33 | improvements made in alternate versions of the program, if they 34 | receive widespread use, become available for other developers to 35 | incorporate. Many developers of free software are heartened and 36 | encouraged by the resulting cooperation. However, in the case of 37 | software used on network servers, this result may fail to come about. 38 | The GNU General Public License permits making a modified version and 39 | letting the public access it on a server without ever releasing its 40 | source code to the public. 41 | 42 | The GNU Affero General Public License is designed specifically to 43 | ensure that, in such cases, the modified source code becomes available 44 | to the community. It requires the operator of a network server to 45 | provide the source code of the modified version running there to the 46 | users of that server. Therefore, public use of a modified version, on 47 | a publicly accessible server, gives the public access to the source 48 | code of the modified version. 49 | 50 | An older license, called the Affero General Public License and 51 | published by Affero, was designed to accomplish similar goals. This is 52 | a different license, not a version of the Affero GPL, but Affero has 53 | released a new version of the Affero GPL which permits relicensing under 54 | this license. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | TERMS AND CONDITIONS 60 | 61 | 0. Definitions. 62 | 63 | "This License" refers to version 3 of the GNU Affero General Public License. 64 | 65 | "Copyright" also means copyright-like laws that apply to other kinds of 66 | works, such as semiconductor masks. 67 | 68 | "The Program" refers to any copyrightable work licensed under this 69 | License. Each licensee is addressed as "you". "Licensees" and 70 | "recipients" may be individuals or organizations. 71 | 72 | To "modify" a work means to copy from or adapt all or part of the work 73 | in a fashion requiring copyright permission, other than the making of an 74 | exact copy. The resulting work is called a "modified version" of the 75 | earlier work or a work "based on" the earlier work. 76 | 77 | A "covered work" means either the unmodified Program or a work based 78 | on the Program. 79 | 80 | To "propagate" a work means to do anything with it that, without 81 | permission, would make you directly or secondarily liable for 82 | infringement under applicable copyright law, except executing it on a 83 | computer or modifying a private copy. Propagation includes copying, 84 | distribution (with or without modification), making available to the 85 | public, and in some countries other activities as well. 86 | 87 | To "convey" a work means any kind of propagation that enables other 88 | parties to make or receive copies. Mere interaction with a user through 89 | a computer network, with no transfer of a copy, is not conveying. 90 | 91 | An interactive user interface displays "Appropriate Legal Notices" 92 | to the extent that it includes a convenient and prominently visible 93 | feature that (1) displays an appropriate copyright notice, and (2) 94 | tells the user that there is no warranty for the work (except to the 95 | extent that warranties are provided), that licensees may convey the 96 | work under this License, and how to view a copy of this License. If 97 | the interface presents a list of user commands or options, such as a 98 | menu, a prominent item in the list meets this criterion. 99 | 100 | 1. Source Code. 101 | 102 | The "source code" for a work means the preferred form of the work 103 | for making modifications to it. "Object code" means any non-source 104 | form of a work. 105 | 106 | A "Standard Interface" means an interface that either is an official 107 | standard defined by a recognized standards body, or, in the case of 108 | interfaces specified for a particular programming language, one that 109 | is widely used among developers working in that language. 110 | 111 | The "System Libraries" of an executable work include anything, other 112 | than the work as a whole, that (a) is included in the normal form of 113 | packaging a Major Component, but which is not part of that Major 114 | Component, and (b) serves only to enable use of the work with that 115 | Major Component, or to implement a Standard Interface for which an 116 | implementation is available to the public in source code form. A 117 | "Major Component", in this context, means a major essential component 118 | (kernel, window system, and so on) of the specific operating system 119 | (if any) on which the executable work runs, or a compiler used to 120 | produce the work, or an object code interpreter used to run it. 121 | 122 | The "Corresponding Source" for a work in object code form means all 123 | the source code needed to generate, install, and (for an executable 124 | work) run the object code and to modify the work, including scripts to 125 | control those activities. However, it does not include the work's 126 | System Libraries, or general-purpose tools or generally available free 127 | programs which are used unmodified in performing those activities but 128 | which are not part of the work. For example, Corresponding Source 129 | includes interface definition files associated with source files for 130 | the work, and the source code for shared libraries and dynamically 131 | linked subprograms that the work is specifically designed to require, 132 | such as by intimate data communication or control flow between those 133 | subprograms and other parts of the work. 134 | 135 | The Corresponding Source need not include anything that users 136 | can regenerate automatically from other parts of the Corresponding 137 | Source. 138 | 139 | The Corresponding Source for a work in source code form is that 140 | same work. 141 | 142 | 2. Basic Permissions. 143 | 144 | All rights granted under this License are granted for the term of 145 | copyright on the Program, and are irrevocable provided the stated 146 | conditions are met. This License explicitly affirms your unlimited 147 | permission to run the unmodified Program. The output from running a 148 | covered work is covered by this License only if the output, given its 149 | content, constitutes a covered work. This License acknowledges your 150 | rights of fair use or other equivalent, as provided by copyright law. 151 | 152 | You may make, run and propagate covered works that you do not 153 | convey, without conditions so long as your license otherwise remains 154 | in force. You may convey covered works to others for the sole purpose 155 | of having them make modifications exclusively for you, or provide you 156 | with facilities for running those works, provided that you comply with 157 | the terms of this License in conveying all material for which you do 158 | not control copyright. Those thus making or running the covered works 159 | for you must do so exclusively on your behalf, under your direction 160 | and control, on terms that prohibit them from making any copies of 161 | your copyrighted material outside their relationship with you. 162 | 163 | Conveying under any other circumstances is permitted solely under 164 | the conditions stated below. Sublicensing is not allowed; section 10 165 | makes it unnecessary. 166 | 167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 168 | 169 | No covered work shall be deemed part of an effective technological 170 | measure under any applicable law fulfilling obligations under article 171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 172 | similar laws prohibiting or restricting circumvention of such 173 | measures. 174 | 175 | When you convey a covered work, you waive any legal power to forbid 176 | circumvention of technological measures to the extent such circumvention 177 | is effected by exercising rights under this License with respect to 178 | the covered work, and you disclaim any intention to limit operation or 179 | modification of the work as a means of enforcing, against the work's 180 | users, your or third parties' legal rights to forbid circumvention of 181 | technological measures. 182 | 183 | 4. Conveying Verbatim Copies. 184 | 185 | You may convey verbatim copies of the Program's source code as you 186 | receive it, in any medium, provided that you conspicuously and 187 | appropriately publish on each copy an appropriate copyright notice; 188 | keep intact all notices stating that this License and any 189 | non-permissive terms added in accord with section 7 apply to the code; 190 | keep intact all notices of the absence of any warranty; and give all 191 | recipients a copy of this License along with the Program. 192 | 193 | You may charge any price or no price for each copy that you convey, 194 | and you may offer support or warranty protection for a fee. 195 | 196 | 5. Conveying Modified Source Versions. 197 | 198 | You may convey a work based on the Program, or the modifications to 199 | produce it from the Program, in the form of source code under the 200 | terms of section 4, provided that you also meet all of these conditions: 201 | 202 | a) The work must carry prominent notices stating that you modified 203 | it, and giving a relevant date. 204 | 205 | b) The work must carry prominent notices stating that it is 206 | released under this License and any conditions added under section 207 | 7. This requirement modifies the requirement in section 4 to 208 | "keep intact all notices". 209 | 210 | c) You must license the entire work, as a whole, under this 211 | License to anyone who comes into possession of a copy. This 212 | License will therefore apply, along with any applicable section 7 213 | additional terms, to the whole of the work, and all its parts, 214 | regardless of how they are packaged. This License gives no 215 | permission to license the work in any other way, but it does not 216 | invalidate such permission if you have separately received it. 217 | 218 | d) If the work has interactive user interfaces, each must display 219 | Appropriate Legal Notices; however, if the Program has interactive 220 | interfaces that do not display Appropriate Legal Notices, your 221 | work need not make them do so. 222 | 223 | A compilation of a covered work with other separate and independent 224 | works, which are not by their nature extensions of the covered work, 225 | and which are not combined with it such as to form a larger program, 226 | in or on a volume of a storage or distribution medium, is called an 227 | "aggregate" if the compilation and its resulting copyright are not 228 | used to limit the access or legal rights of the compilation's users 229 | beyond what the individual works permit. Inclusion of a covered work 230 | in an aggregate does not cause this License to apply to the other 231 | parts of the aggregate. 232 | 233 | 6. Conveying Non-Source Forms. 234 | 235 | You may convey a covered work in object code form under the terms 236 | of sections 4 and 5, provided that you also convey the 237 | machine-readable Corresponding Source under the terms of this License, 238 | in one of these ways: 239 | 240 | a) Convey the object code in, or embodied in, a physical product 241 | (including a physical distribution medium), accompanied by the 242 | Corresponding Source fixed on a durable physical medium 243 | customarily used for software interchange. 244 | 245 | b) Convey the object code in, or embodied in, a physical product 246 | (including a physical distribution medium), accompanied by a 247 | written offer, valid for at least three years and valid for as 248 | long as you offer spare parts or customer support for that product 249 | model, to give anyone who possesses the object code either (1) a 250 | copy of the Corresponding Source for all the software in the 251 | product that is covered by this License, on a durable physical 252 | medium customarily used for software interchange, for a price no 253 | more than your reasonable cost of physically performing this 254 | conveying of source, or (2) access to copy the 255 | Corresponding Source from a network server at no charge. 256 | 257 | c) Convey individual copies of the object code with a copy of the 258 | written offer to provide the Corresponding Source. This 259 | alternative is allowed only occasionally and noncommercially, and 260 | only if you received the object code with such an offer, in accord 261 | with subsection 6b. 262 | 263 | d) Convey the object code by offering access from a designated 264 | place (gratis or for a charge), and offer equivalent access to the 265 | Corresponding Source in the same way through the same place at no 266 | further charge. You need not require recipients to copy the 267 | Corresponding Source along with the object code. If the place to 268 | copy the object code is a network server, the Corresponding Source 269 | may be on a different server (operated by you or a third party) 270 | that supports equivalent copying facilities, provided you maintain 271 | clear directions next to the object code saying where to find the 272 | Corresponding Source. Regardless of what server hosts the 273 | Corresponding Source, you remain obligated to ensure that it is 274 | available for as long as needed to satisfy these requirements. 275 | 276 | e) Convey the object code using peer-to-peer transmission, provided 277 | you inform other peers where the object code and Corresponding 278 | Source of the work are being offered to the general public at no 279 | charge under subsection 6d. 280 | 281 | A separable portion of the object code, whose source code is excluded 282 | from the Corresponding Source as a System Library, need not be 283 | included in conveying the object code work. 284 | 285 | A "User Product" is either (1) a "consumer product", which means any 286 | tangible personal property which is normally used for personal, family, 287 | or household purposes, or (2) anything designed or sold for incorporation 288 | into a dwelling. In determining whether a product is a consumer product, 289 | doubtful cases shall be resolved in favor of coverage. For a particular 290 | product received by a particular user, "normally used" refers to a 291 | typical or common use of that class of product, regardless of the status 292 | of the particular user or of the way in which the particular user 293 | actually uses, or expects or is expected to use, the product. A product 294 | is a consumer product regardless of whether the product has substantial 295 | commercial, industrial or non-consumer uses, unless such uses represent 296 | the only significant mode of use of the product. 297 | 298 | "Installation Information" for a User Product means any methods, 299 | procedures, authorization keys, or other information required to install 300 | and execute modified versions of a covered work in that User Product from 301 | a modified version of its Corresponding Source. The information must 302 | suffice to ensure that the continued functioning of the modified object 303 | code is in no case prevented or interfered with solely because 304 | modification has been made. 305 | 306 | If you convey an object code work under this section in, or with, or 307 | specifically for use in, a User Product, and the conveying occurs as 308 | part of a transaction in which the right of possession and use of the 309 | User Product is transferred to the recipient in perpetuity or for a 310 | fixed term (regardless of how the transaction is characterized), the 311 | Corresponding Source conveyed under this section must be accompanied 312 | by the Installation Information. But this requirement does not apply 313 | if neither you nor any third party retains the ability to install 314 | modified object code on the User Product (for example, the work has 315 | been installed in ROM). 316 | 317 | The requirement to provide Installation Information does not include a 318 | requirement to continue to provide support service, warranty, or updates 319 | for a work that has been modified or installed by the recipient, or for 320 | the User Product in which it has been modified or installed. Access to a 321 | network may be denied when the modification itself materially and 322 | adversely affects the operation of the network or violates the rules and 323 | protocols for communication across the network. 324 | 325 | Corresponding Source conveyed, and Installation Information provided, 326 | in accord with this section must be in a format that is publicly 327 | documented (and with an implementation available to the public in 328 | source code form), and must require no special password or key for 329 | unpacking, reading or copying. 330 | 331 | 7. Additional Terms. 332 | 333 | "Additional permissions" are terms that supplement the terms of this 334 | License by making exceptions from one or more of its conditions. 335 | Additional permissions that are applicable to the entire Program shall 336 | be treated as though they were included in this License, to the extent 337 | that they are valid under applicable law. If additional permissions 338 | apply only to part of the Program, that part may be used separately 339 | under those permissions, but the entire Program remains governed by 340 | this License without regard to the additional permissions. 341 | 342 | When you convey a copy of a covered work, you may at your option 343 | remove any additional permissions from that copy, or from any part of 344 | it. (Additional permissions may be written to require their own 345 | removal in certain cases when you modify the work.) You may place 346 | additional permissions on material, added by you to a covered work, 347 | for which you have or can give appropriate copyright permission. 348 | 349 | Notwithstanding any other provision of this License, for material you 350 | add to a covered work, you may (if authorized by the copyright holders of 351 | that material) supplement the terms of this License with terms: 352 | 353 | a) Disclaiming warranty or limiting liability differently from the 354 | terms of sections 15 and 16 of this License; or 355 | 356 | b) Requiring preservation of specified reasonable legal notices or 357 | author attributions in that material or in the Appropriate Legal 358 | Notices displayed by works containing it; or 359 | 360 | c) Prohibiting misrepresentation of the origin of that material, or 361 | requiring that modified versions of such material be marked in 362 | reasonable ways as different from the original version; or 363 | 364 | d) Limiting the use for publicity purposes of names of licensors or 365 | authors of the material; or 366 | 367 | e) Declining to grant rights under trademark law for use of some 368 | trade names, trademarks, or service marks; or 369 | 370 | f) Requiring indemnification of licensors and authors of that 371 | material by anyone who conveys the material (or modified versions of 372 | it) with contractual assumptions of liability to the recipient, for 373 | any liability that these contractual assumptions directly impose on 374 | those licensors and authors. 375 | 376 | All other non-permissive additional terms are considered "further 377 | restrictions" within the meaning of section 10. If the Program as you 378 | received it, or any part of it, contains a notice stating that it is 379 | governed by this License along with a term that is a further 380 | restriction, you may remove that term. If a license document contains 381 | a further restriction but permits relicensing or conveying under this 382 | License, you may add to a covered work material governed by the terms 383 | of that license document, provided that the further restriction does 384 | not survive such relicensing or conveying. 385 | 386 | If you add terms to a covered work in accord with this section, you 387 | must place, in the relevant source files, a statement of the 388 | additional terms that apply to those files, or a notice indicating 389 | where to find the applicable terms. 390 | 391 | Additional terms, permissive or non-permissive, may be stated in the 392 | form of a separately written license, or stated as exceptions; 393 | the above requirements apply either way. 394 | 395 | 8. Termination. 396 | 397 | You may not propagate or modify a covered work except as expressly 398 | provided under this License. Any attempt otherwise to propagate or 399 | modify it is void, and will automatically terminate your rights under 400 | this License (including any patent licenses granted under the third 401 | paragraph of section 11). 402 | 403 | However, if you cease all violation of this License, then your 404 | license from a particular copyright holder is reinstated (a) 405 | provisionally, unless and until the copyright holder explicitly and 406 | finally terminates your license, and (b) permanently, if the copyright 407 | holder fails to notify you of the violation by some reasonable means 408 | prior to 60 days after the cessation. 409 | 410 | Moreover, your license from a particular copyright holder is 411 | reinstated permanently if the copyright holder notifies you of the 412 | violation by some reasonable means, this is the first time you have 413 | received notice of violation of this License (for any work) from that 414 | copyright holder, and you cure the violation prior to 30 days after 415 | your receipt of the notice. 416 | 417 | Termination of your rights under this section does not terminate the 418 | licenses of parties who have received copies or rights from you under 419 | this License. If your rights have been terminated and not permanently 420 | reinstated, you do not qualify to receive new licenses for the same 421 | material under section 10. 422 | 423 | 9. Acceptance Not Required for Having Copies. 424 | 425 | You are not required to accept this License in order to receive or 426 | run a copy of the Program. Ancillary propagation of a covered work 427 | occurring solely as a consequence of using peer-to-peer transmission 428 | to receive a copy likewise does not require acceptance. However, 429 | nothing other than this License grants you permission to propagate or 430 | modify any covered work. These actions infringe copyright if you do 431 | not accept this License. Therefore, by modifying or propagating a 432 | covered work, you indicate your acceptance of this License to do so. 433 | 434 | 10. Automatic Licensing of Downstream Recipients. 435 | 436 | Each time you convey a covered work, the recipient automatically 437 | receives a license from the original licensors, to run, modify and 438 | propagate that work, subject to this License. You are not responsible 439 | for enforcing compliance by third parties with this License. 440 | 441 | An "entity transaction" is a transaction transferring control of an 442 | organization, or substantially all assets of one, or subdividing an 443 | organization, or merging organizations. If propagation of a covered 444 | work results from an entity transaction, each party to that 445 | transaction who receives a copy of the work also receives whatever 446 | licenses to the work the party's predecessor in interest had or could 447 | give under the previous paragraph, plus a right to possession of the 448 | Corresponding Source of the work from the predecessor in interest, if 449 | the predecessor has it or can get it with reasonable efforts. 450 | 451 | You may not impose any further restrictions on the exercise of the 452 | rights granted or affirmed under this License. For example, you may 453 | not impose a license fee, royalty, or other charge for exercise of 454 | rights granted under this License, and you may not initiate litigation 455 | (including a cross-claim or counterclaim in a lawsuit) alleging that 456 | any patent claim is infringed by making, using, selling, offering for 457 | sale, or importing the Program or any portion of it. 458 | 459 | 11. Patents. 460 | 461 | A "contributor" is a copyright holder who authorizes use under this 462 | License of the Program or a work on which the Program is based. The 463 | work thus licensed is called the contributor's "contributor version". 464 | 465 | A contributor's "essential patent claims" are all patent claims 466 | owned or controlled by the contributor, whether already acquired or 467 | hereafter acquired, that would be infringed by some manner, permitted 468 | by this License, of making, using, or selling its contributor version, 469 | but do not include claims that would be infringed only as a 470 | consequence of further modification of the contributor version. For 471 | purposes of this definition, "control" includes the right to grant 472 | patent sublicenses in a manner consistent with the requirements of 473 | this License. 474 | 475 | Each contributor grants you a non-exclusive, worldwide, royalty-free 476 | patent license under the contributor's essential patent claims, to 477 | make, use, sell, offer for sale, import and otherwise run, modify and 478 | propagate the contents of its contributor version. 479 | 480 | In the following three paragraphs, a "patent license" is any express 481 | agreement or commitment, however denominated, not to enforce a patent 482 | (such as an express permission to practice a patent or covenant not to 483 | sue for patent infringement). To "grant" such a patent license to a 484 | party means to make such an agreement or commitment not to enforce a 485 | patent against the party. 486 | 487 | If you convey a covered work, knowingly relying on a patent license, 488 | and the Corresponding Source of the work is not available for anyone 489 | to copy, free of charge and under the terms of this License, through a 490 | publicly available network server or other readily accessible means, 491 | then you must either (1) cause the Corresponding Source to be so 492 | available, or (2) arrange to deprive yourself of the benefit of the 493 | patent license for this particular work, or (3) arrange, in a manner 494 | consistent with the requirements of this License, to extend the patent 495 | license to downstream recipients. "Knowingly relying" means you have 496 | actual knowledge that, but for the patent license, your conveying the 497 | covered work in a country, or your recipient's use of the covered work 498 | in a country, would infringe one or more identifiable patents in that 499 | country that you have reason to believe are valid. 500 | 501 | If, pursuant to or in connection with a single transaction or 502 | arrangement, you convey, or propagate by procuring conveyance of, a 503 | covered work, and grant a patent license to some of the parties 504 | receiving the covered work authorizing them to use, propagate, modify 505 | or convey a specific copy of the covered work, then the patent license 506 | you grant is automatically extended to all recipients of the covered 507 | work and works based on it. 508 | 509 | A patent license is "discriminatory" if it does not include within 510 | the scope of its coverage, prohibits the exercise of, or is 511 | conditioned on the non-exercise of one or more of the rights that are 512 | specifically granted under this License. You may not convey a covered 513 | work if you are a party to an arrangement with a third party that is 514 | in the business of distributing software, under which you make payment 515 | to the third party based on the extent of your activity of conveying 516 | the work, and under which the third party grants, to any of the 517 | parties who would receive the covered work from you, a discriminatory 518 | patent license (a) in connection with copies of the covered work 519 | conveyed by you (or copies made from those copies), or (b) primarily 520 | for and in connection with specific products or compilations that 521 | contain the covered work, unless you entered into that arrangement, 522 | or that patent license was granted, prior to 28 March 2007. 523 | 524 | Nothing in this License shall be construed as excluding or limiting 525 | any implied license or other defenses to infringement that may 526 | otherwise be available to you under applicable patent law. 527 | 528 | 12. No Surrender of Others' Freedom. 529 | 530 | If conditions are imposed on you (whether by court order, agreement or 531 | otherwise) that contradict the conditions of this License, they do not 532 | excuse you from the conditions of this License. If you cannot convey a 533 | covered work so as to satisfy simultaneously your obligations under this 534 | License and any other pertinent obligations, then as a consequence you may 535 | not convey it at all. For example, if you agree to terms that obligate you 536 | to collect a royalty for further conveying from those to whom you convey 537 | the Program, the only way you could satisfy both those terms and this 538 | License would be to refrain entirely from conveying the Program. 539 | 540 | 13. Remote Network Interaction; Use with the GNU General Public License. 541 | 542 | Notwithstanding any other provision of this License, if you modify the 543 | Program, your modified version must prominently offer all users 544 | interacting with it remotely through a computer network (if your version 545 | supports such interaction) an opportunity to receive the Corresponding 546 | Source of your version by providing access to the Corresponding Source 547 | from a network server at no charge, through some standard or customary 548 | means of facilitating copying of software. This Corresponding Source 549 | shall include the Corresponding Source for any work covered by version 3 550 | of the GNU General Public License that is incorporated pursuant to the 551 | following paragraph. 552 | 553 | Notwithstanding any other provision of this License, you have 554 | permission to link or combine any covered work with a work licensed 555 | under version 3 of the GNU General Public License into a single 556 | combined work, and to convey the resulting work. The terms of this 557 | License will continue to apply to the part which is the covered work, 558 | but the work with which it is combined will remain governed by version 559 | 3 of the GNU General Public License. 560 | 561 | 14. Revised Versions of this License. 562 | 563 | The Free Software Foundation may publish revised and/or new versions of 564 | the GNU Affero General Public License from time to time. Such new versions 565 | will be similar in spirit to the present version, but may differ in detail to 566 | address new problems or concerns. 567 | 568 | Each version is given a distinguishing version number. If the 569 | Program specifies that a certain numbered version of the GNU Affero General 570 | Public License "or any later version" applies to it, you have the 571 | option of following the terms and conditions either of that numbered 572 | version or of any later version published by the Free Software 573 | Foundation. If the Program does not specify a version number of the 574 | GNU Affero General Public License, you may choose any version ever published 575 | by the Free Software Foundation. 576 | 577 | If the Program specifies that a proxy can decide which future 578 | versions of the GNU Affero General Public License can be used, that proxy's 579 | public statement of acceptance of a version permanently authorizes you 580 | to choose that version for the Program. 581 | 582 | Later license versions may give you additional or different 583 | permissions. However, no additional obligations are imposed on any 584 | author or copyright holder as a result of your choosing to follow a 585 | later version. 586 | 587 | 15. Disclaimer of Warranty. 588 | 589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 597 | 598 | 16. Limitation of Liability. 599 | 600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 608 | SUCH DAMAGES. 609 | 610 | 17. Interpretation of Sections 15 and 16. 611 | 612 | If the disclaimer of warranty and limitation of liability provided 613 | above cannot be given local legal effect according to their terms, 614 | reviewing courts shall apply local law that most closely approximates 615 | an absolute waiver of all civil liability in connection with the 616 | Program, unless a warranty or assumption of liability accompanies a 617 | copy of the Program in return for a fee. 618 | 619 | END OF TERMS AND CONDITIONS 620 | 621 | How to Apply These Terms to Your New Programs 622 | 623 | If you develop a new program, and you want it to be of the greatest 624 | possible use to the public, the best way to achieve this is to make it 625 | free software which everyone can redistribute and change under these terms. 626 | 627 | To do so, attach the following notices to the program. It is safest 628 | to attach them to the start of each source file to most effectively 629 | state the exclusion of warranty; and each file should have at least 630 | the "copyright" line and a pointer to where the full notice is found. 631 | 632 | 633 | Copyright (C) 634 | 635 | This program is free software: you can redistribute it and/or modify 636 | it under the terms of the GNU Affero General Public License as published 637 | by the Free Software Foundation, either version 3 of the License, or 638 | (at your option) any later version. 639 | 640 | This program is distributed in the hope that it will be useful, 641 | but WITHOUT ANY WARRANTY; without even the implied warranty of 642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 643 | GNU Affero General Public License for more details. 644 | 645 | You should have received a copy of the GNU Affero General Public License 646 | along with this program. If not, see . 647 | 648 | Also add information on how to contact you by electronic and paper mail. 649 | 650 | If your software can interact with users remotely through a computer 651 | network, you should also make sure that it provides a way for users to 652 | get its source. For example, if your program is a web application, its 653 | interface could display a "Source" link that leads users to an archive 654 | of the code. There are many ways you could offer source, and different 655 | solutions will be better for different programs; see section 13 for the 656 | specific requirements. 657 | 658 | You should also get your employer (if you work as a programmer) or school, 659 | if any, to sign a "copyright disclaimer" for the program, if necessary. 660 | For more information on this, and how to apply and follow the GNU AGPL, see 661 | . 662 | --------------------------------------------------------------------------------